在做插件的开发,当遇到插件的配置在服务器上时,这时候要把配置文件下载到本地,把本地的文件路径传递给插件,让插件来读取配置文件,这样比把文件下载到内存,要占用空间要小。
查询NPAPI相关文档:
NPN_GetURLNotify()的API说要下载文件,要把_target参数设为NULL.
如:NPN_GetURLNotify(m_pNPInstance, pFile, NULL, this);其中pFile即为你的插件配置的网络路径,this,为插件的对象,可以作为参数传递到下载的线程中。
NPN_GetURLNotify是线程异步,所以在下载的过程中,要考虑下载失败等异常处理体系。
整个插件的执行顺序如下:
39350846: NP_GetEntryPoints: Start pFncs=$B411CC
39350862: NP_GetEntryPoints: pFuncs->size=84, sizeof(NPPluginFuncs)=80
39350862: NP_GetEntryPoints: End, iRet=0
39350862: NP_Initialize: Start, pFncs=$1035CA40
39350862: NP_Initialize: MajorVersion=0, MinorVersion=27, NP_VERSION_MAJOR=0, NP_VERSION_MINOR=27, pFncs->size=236, sizeof(NPNetscapeFuncs)=224
39350862: NP_Initialize: End, iRet=0
39350862: NPP_New: Start, pluginType=$B17248, instance=$B5D078, mode=$1, argc=5, argn=$B4E280, argv=$B4E2A0, saved=$0
39350862: NPP_New: arg[1] : id='fftest'
39350862: NPP_New: arg[2] : type='application/vnd.fftester.fftest-component'
39350862: NPP_New: arg[3] : border='2'
39350862: NPP_New: arg[4] : height='320'
39350862: NPP_New: arg[5] : width='480'
39350862: CTESTNPPlugin::CTESTNPPlugin: Start, pNPInstance=$B5D078
39350862: CTESTNPPlugin::CTESTNPPlugin: End
39350862: NPP_New: End, iRet=0
39350877: NPP_SetWindow: Start, instance=$B5D078, pNPWindow=$B5D080
39350877: CTESTNPPlugin::isInitialized: Start/End
39350893: CTESTNPPlugin::init: Start, pNPWindow=$B5D080
39350893: CTESTNPPlugin::init: End, bRet=1
39350893: CTESTNPPlugin::isInitialized: Start/End
39350893: NPP_SetWindow: Start, instan