On Fri, Jun 12, 2009 at 5:09 AM, MIND GAME <lovekhanna04...@gmail.com>wrote:
> > can anybody sugest me a way test npapi pluguns in android browser. > I don't know, but maybe you could try answering the questions I sent you previously to help you debug the issue? Just maybe... > > On Jun 11, 4:09 pm, MIND GAME <lovekhanna04...@gmail.com> wrote: > > thanks for ur tracking > > can u help me out to solve this problem > > > > On Jun 11, 9:33 am, Marco Nelissen <marc...@android.com> wrote: > > > > > > > > > This is the 4th or 5th time today that you've asked about this... > > > > > On Wed, Jun 10, 2009 at 9:30 PM, MIND GAME <lovekhanna04...@gmail.com > >wrote: > > > > > > i am trying to load a npapi plugin using android api - webview. > > > > code is > > > > webview.getSettings().setJavaScriptEnabled(true); > > > > webview .getSettings().setPluginsEnabled(true); > > > > webview.getSettings().setPluginsPath("/android_asset/web/"); > > > > System.out.println("Default plugin path > > > > is :"+webview .getSettings().getPluginsPath()); > > > > webview.loadUrl("file:///android_asset/web/test.html"); > > > > > > i m using simple example npapi plugin. > > > > > > code for plugin is given below and i place this plugin inside my > > > > application's asset folder. and set pulgin path like this -- > > > > webview.getSettings().setPluginsPath > > > > ("/android_asset/web/"); > > > > > > but plugin is failing to load... > > > > > > #include <stdio.h> > > > > #include <string.h> > > > > #if defined(OS_Darwin) > > > > #include <Webkit/npapi.h> > > > > #include <WebKit/npfunctions.h> > > > > #include <WebKit/npruntime.h> > > > > #define OSCALL > > > > #endif > > > > #if XULRUNNER_SDK > > > > #include <npapi.h> > > > > #include <npupp.h> > > > > #include <npruntime.h> > > > > #elif _WINDOWS /* WebKit SDK on Windows */ > > > > #ifndef PLATFORM > > > > #define PLATFORM(x) defined(x) > > > > #endif > > > > #include <npfunctions.h> > > > > #ifndef OSCALL > > > > #define OSCALL WINAPI > > > > #endif > > > > #endif > > > > char** charArray = NULL; > > > > static NPObject *so = NULL; > > > > static NPNetscapeFuncs *npnfuncs = NULL; > > > > /* NPN */ > > > > static void logmsg(const char *msg) { > > > > #ifndef _WINDOWS > > > > fputs(msg, stderr); > > > > #else > > > > static FILE *out = fopen("\\npsimple.log", "a"); > > > > fputs(msg, out); > > > > fclose(out); > > > > #endif > > > > } > > > > > > static bool > > > > hasMethod(NPObject* obj, NPIdentifier methodName) { > > > > logmsg("npsimple: hasMethod\n"); > > > > return true; > > > > } > > > > > > static bool > > > > invokeDefault(NPObject *obj, const NPVariant *args, uint32_t > > > > argCount, > > > > NPVariant *result) { > > > > logmsg("npsimple: invokeDefault\n"); > > > > result->type = NPVariantType_Int32; > > > > result->value.intValue = 42; > > > > return true; > > > > } > > > > > > static bool > > > > invoke(NPObject* obj, NPIdentifier methodName, const NPVariant *args, > > > > uint32_t argCount, NPVariant *result) { > > > > logmsg("npsimple: invoke\n"); > > > > invokeDefault(obj,args,argCount,result); > > > > return true; > > > > } > > > > > > static bool > > > > hasProperty(NPObject *obj, NPIdentifier propertyName) { > > > > logmsg("npsimple: hasProperty\n"); > > > > return false; > > > > } > > > > > > static bool > > > > getProperty(NPObject *obj, NPIdentifier propertyName, NPVariant > > > > *result) { > > > > logmsg("npsimple: getProperty\n"); > > > > return false; > > > > } > > > > > > static bool enumerate(NPObject *npobj, NPIdentifier **value, > > > > uint32_t *count){ > > > > } > > > > > > static NPObject* allocate(NPP npp,NPClass* theClass){ > > > > logmsg("IN ALLOCATE\n"); > > > > NPObject* npObj = (NPObject*)malloc(sizeof(NPObject)); > > > > return npObj; > > > > } > > > > > > static void deallocate(NPObject* obj){ > > > > logmsg("IN DEALLOCATE\n"); > > > > free(obj); > > > > } > > > > > > static NPClass npcRefObject = { > > > > NP_CLASS_STRUCT_VERSION, > > > > allocate, > > > > deallocate, > > > > NULL, > > > > hasMethod, > > > > invoke, > > > > invokeDefault, > > > > hasProperty, > > > > getProperty, > > > > NULL, > > > > NULL,enumerate, > > > > }; > > > > > > /* NPP */ > > > > static NPError > > > > nevv(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, > > > > char *argn[], char *argv[], NPSavedData *saved) { > > > > logmsg("npsimple: new\n"); > > > > return NPERR_NO_ERROR; > > > > } > > > > > > static NPError > > > > destroy(NPP instance, NPSavedData **save) { > > > > if(so) > > > > npnfuncs->releaseobject(so); > > > > so = NULL; > > > > logmsg("npsimple: destroy\n"); > > > > return NPERR_NO_ERROR; > > > > } > > > > > > static NPError > > > > getValue(NPP instance, NPPVariable variable, void *value) { > > > > switch(variable) { > > > > default: > > > > logmsg("npsimple: getvalue - default\n"); > > > > return NPERR_GENERIC_ERROR; > > > > case NPPVpluginNameString: > > > > logmsg("npsimple: getvalue - name string\n"); > > > > *((char **)value) = "AplixFooPlugin"; > > > > break; > > > > case NPPVpluginDescriptionString: > > > > logmsg("npsimple: getvalue - description string\n"); > > > > *((char **)value) = "<a href=\"http:// > > > >www.aplix.co.jp/ > > > > \">AplixFooPlugin</a> plugin."; > > > > break; > > > > case NPPVpluginScriptableNPObject: > > > > logmsg("npsimple: getvalue - scriptable object\n"); > > > > if(!so) > > > > so = npnfuncs->createobject(instance, > > > > &npcRefObject); > > > > npnfuncs->retainobject(so); > > > > *(NPObject **)value = so; > > > > break; > > > > #ifdef XULRUNNER_SDK > > > > case NPPVpluginNeedsXEmbed: > > > > logmsg("npsimple: getvalue - xembed\n"); > > > > /* *((PRBool *)value) = PR_FALSE; */ > > > > *((NPBool *)value) = FALSE; > > > > break; > > > > #endif > > > > } > > > > return NPERR_NO_ERROR; > > > > } > > > > > > static NPError /* expected by Safari on Darwin */ > > > > handleEvent(NPP instance, void *ev) { > > > > logmsg("npsimple: handleEvent\n"); > > > > return NPERR_NO_ERROR; > > > > } > > > > > > static NPError /* expected by Opera */ > > > > setWindow(NPP instance, NPWindow* pNPWindow) { > > > > logmsg("npsimple: setWindow\n"); > > > > return NPERR_NO_ERROR; > > > > } > > > > > > /* EXPORT */ > > > > #ifdef __cplusplus > > > > extern "C" { > > > > #endif > > > > NPError OSCALL > > > > NP_GetEntryPoints(NPPluginFuncs *nppfuncs) { > > > > logmsg("npsimple: NP_GetEntryPoints\n"); > > > > nppfuncs->version = (NP_VERSION_MAJOR << 8) | > > > > NP_VERSION_MINOR; > > > > nppfuncs->newp = nevv; > > > > nppfuncs->destroy = destroy; > > > > nppfuncs->getvalue = getValue; > > > > nppfuncs->event = handleEvent; > > > > nppfuncs->setwindow = setWindow; > > > > return NPERR_NO_ERROR; > > > > } > > > > > > #ifndef HIBYTE > > > > #define HIBYTE(x) ((((uint32)(x)) & 0xff00) >> 8) > > > > #endif > > > > NPError OSCALL > > > > NP_Initialize(NPNetscapeFuncs *npnf > > > > #if !defined(_WINDOWS) && !defined(OS_Darwin) > > > > , NPPluginFuncs *nppfuncs) > > > > #else > > > > ) > > > > #endif > > > > { > > > > logmsg("npsimple: NP_Initialize\n"); > > > > if(npnf == NULL) > > > > return NPERR_INVALID_FUNCTABLE_ERROR; > > > > if(HIBYTE(npnf->version) > NP_VERSION_MAJOR) > > > > return NPERR_INCOMPATIBLE_VERSION_ERROR; > > > > npnfuncs = npnf; > > > > #if !defined(_WINDOWS) && !defined(OS_Darwin) > > > > NP_GetEntryPoints(nppfuncs); > > > > #endif > > > > return NPERR_NO_ERROR; > > > > } > > > > > > NPError > > > > OSCALL NP_Shutdown() { > > > > logmsg("npsimple: NP_Shutdown\n"); > > > > return NPERR_NO_ERROR; > > > > } > > > > > > char * > > > > NP_GetMIMEDescription(void) { > > > > logmsg("npsimple: NP_GetMIMEDescription\n"); > > > > return "application/x-vnd-aplix- > > > > foo:.foo:dev-...@aplix.co.jp <foo%3a.foo%3adev-...@aplix.co.jp> < > foo%3a.foo%3adev-...@aplix.co.jp <foo%253a.foo%253adev-...@aplix.co.jp>>"; > > > > } > > > > > > NPError OSCALL /* needs to be present for WebKit based browsers */ > > > > NP_GetValue(void *npp, NPPVariable variable, void *value) { > > > > return getValue((NPP)npp, variable, value); > > > > } > > > > > > #ifdef __cplusplus > > > > } > > > > > > #endif > > > > > > please help me out..... > > > > thanks in advance... > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---