成都APP开发公司 > APP开发资讯> 社交APP开发:MUI对接环信开发社交APP就是坑多

社交APP开发:MUI对接环信开发社交APP就是坑多


2016-12-10 1811 怒雕科技 分类:APP开发资讯


从HTML5+的规范层面来,MUI无法立项关于im的一个规定,im属于比较业务化的内容,目前的规范完全可以实现,无法因为要增加易用性而立项新标准。


开发者在开发扩展插件时需要为扩展插件编写对应的JS API,JS API将在HTML页面中触发调用对应Native扩展方法的请求,并负责接收运行结果。

开发者在编写扩展插件的JS时需要调用Javascript Plugin Bridge的API用来完成对Native层代码的调用和运行结果的返回。在实际应用中,开发者可以根据扩展方法的实际需求不同,将插件的扩展方法设置为同步执行或异步执行。

同步执行的扩展方法会阻塞当前JS代码的执行,直到Native层插件扩展方法执行完毕。异步扩展方法不会阻塞当前JS代码的执行,使用者需要设置回调方法接收Native层返回的执行结果,开发者需要在插件中调用 Native plugin brigde的方法将执行结果返回到请求页面。

扩展插件工作流程:

插件异步扩展方法:

异步方法的执行不会阻塞当前JS的运行,方法的执行结果会通过回调的方式返回给调用者。



插件同步扩展方法:

同步方法的执行会阻塞当前JS的运行,方法执行完成后可直接获取执行的结果。

扩展插件JS API 编写

开发者在实现JS层API时首先要定义一个插件类别名,并需要在IOS工程的PandoraApi.bundle\feature.plist文件中声明插件类别名和Native层扩展插件类的对应关系

开发步骤

一 创建插件类

开发者新创建的类需要继承“PGPlugin”类实现第三方插件扩展。


  1. 创建一个继承自“PGPlugin”类的Objective-c类

  2. 在源文件中引入头文件“PGPlugin.h”和“PGMethod.h”

二 编写插件的方法

开发者可根据需求,在JS层通过调用不同的JS Plugin Bridge方法,将扩展方法定义为同步执行或异步执行。
同步执行的方法会阻塞当前JS代码的执行,并同步获取Native层扩展方法返回的运行结果。
异步执行方法不会阻塞当前JS代码的执行,需要开发者用回调的方式接收Native层的执行结果。
但需要注意,在调用plus.bridge.exec或plus.bridge.execSync方法时,传入的第一个参数是插件的别名,开发者需要声明别名和Native代码类名的对应关系。传入的第二个参数(调用插件的方法名),需要和要调用的扩展插件的方法名一致,否则无法通过JS调用到Native层扩展类方法。

异步方法:

开发者在编写异步方法时可通过PGPlugin类的回调方法将Native扩展方法运行结果返回到调用页面。使用方法如下
Native层代码实现

另外从开发者层面,如果js版能搞定,就不需要封原生sdk进来,包会小很多,而且这些js sdk不会干坏事。我们很清楚很多原生sdk偷偷在后台做乱七八糟的事情,这里就不给大家起底了。

请将您的宝贵意见发给我们

售前客服

咨询电话