- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
插件扩展机制
Native插件扩展机制
功能描述:
Native插件机制,是指针对native 开发者封装将具有特定功能但是平台没有封装的接口,封装成js调用Native功能,然后通过js扩展接口调用,以达到功能扩展的目的。
IOS SDK
主要包括静态库,头文件,图片资源,js文件,插件配置xml,widget文件夹等等。
详细描述:
静态库libAppCan.a
本静态库是利用appcan平台扩展native plugin的基础。
头文件
包括以下五个:
WidgetOneDelegate.h封装了uiApplicationDelegate以及平台部分扩展需要的接口,直接继承即可;
EUExBase.h:封装用JS调用扩展native plugin的父类,需要继承,
EUtility.h:平台封装的开发者在开发插件过程中有可能用到的调用appcan平台的方法;
widgetOnePseudoDelegate.h:appcan提供的插件模板开发应用入口;
widgetOnePseUdoDelegate.m
图片资源(img文件夹)
img文件夹加下的图片;(文件夹引入的时候必须选择创建文件夹即)
error错误页(error文件夹)
error文件夹下存放网页访问错误时候显示的界面,必须拷贝到资源下,如果想定制自己的可以替换文件夹下资源但是不能修改文件名称,有可能导致文件找不到,加载方式同图片资源
平台引擎js文件夹(uex文件夹)
uex文件夹下存放平台封装的内部调用的js 文件,不可修改,加载方式同图片资源;
plugin.xml
plugin.xml 文件位于顶级目录下,是配置js调用方法的xml文件,如果需要开发natvie plugin,必须加载;
widget 文件夹
widget 文件夹为网页包,默认有config.xml 文件,基本数据已经默认填写,开发者只需修改部分参数即可,切勿删除config.xml 文件,widget文件也必须加载到工程中;
配置工程
新建一个工程,导入libAppCan.a,在target中配置库文件位置,如图:
动态加载,需要配置others linker flags为 -ObjC
2.导入头文件,主要包括widgtOneDelegate.h,EUExBase.h,EUtility.h,还有WidgetOnePseudoDelegate.h,WidgetOnePseudoDelegate.m文件,封装了uiApplictionDelegate协议,在target 中配置头文件位置;如图:
3.加载资源,主要包括img文件夹,error文件夹,uex文件夹,widget文件夹,plugin.xml文件
切记在引入资源的时候是文件夹
4.配置main.m 设置启动为“WidgetOnePseudoDelegate”
5.配置plist 文件项主要包括以下:
AppCanMode 设置为 NO ,如果设置为YES,则为开发版本
widgetone_version设置为
URL styles 设置如图,最后一个选项可以自定义,但必须设置以便于调用支付宝可以返回;
6.配置平台用到的framework
由于平台用到了three20 封装了图片浏览器插件,所以还需要加载three20.bundle;
配置完以上就可以直接编译,运行,检查是否报错;
clean方法
扩展对象的内存,需要在clean()方法中释放
Samples
描述通过 网页中调用native plugin 的开发流程:
配置plugin.xml
配置js调用方法,这里只需关心调用对象,调用方法,以及属性赋值;demo如下:
plugin name: 为封装的js对象的名称,以uex-前缀开头,其余为对象命名;
property name: 初始化 对象的部分属性,以及填写属性赋值,如果属性值为空,则写null,否则不与生成;
method name: 为对象方法;赋值为空,不需要填写
EUEx-Js对象
主要注意一下事项:
1).类的命名规范:
EUEx+对象名称
对象名称大小写跟配置在plugin.xml中的plugin name的去掉uex前缀的对象名称;例如EUExDemoObject类
2).方法命名规范:
跟在plugin.xml中配置的 method name 大小写相同;传参统一用nsmutableArray实例按顺序获取;例如,open,close,share等等,如下图所示:
EUExBase.h
EUExDemoObject.h
3)其他方法:
InitWithBrwView 初始化EUEx-对象;
clean, 是平台封装的调用方法,把一些与当前网页有关的内存等等在切换网页的时候释放掉
4).Native
原创力文档


文档评论(0)