ionic创建一个添加cordova-plugin-broadcaster插件的项目,取2个插件文件,2个文件中添加对应的配置,如:
1、ionic项目中,取出对应原生插件文件和www基础包文件里的插件,放入到自己项目对应存储插件位置。如图:ionic项目文件目录图
ionic项目,原生需要的插件路径
ionic项目,www基础包需要的插件路径
2、ionic项目中,根据www基础包加入对应的插件索引,取出对应的,放入自己项目的,www基础包的cordova_plugins.js这个文件下。
a、
{
"id": "cordova-plugin-broadcaster.broadcaster",
"file": "plugins/cordova-plugin-broadcaster/www/broadcaster.js",
"pluginId": "cordova-plugin-broadcaster",
"clobbers": [
"broadcaster"
]
},
b、
"cordova-plugin-broadcaster": "3.1.1",
如图:ionic项目www基础包需导入插图
3、ionic项目中,根据config.xml文件加入对应的原生插件的索引。取出ionic项目config.xml
<feature name="broadcaster">
<param name="ios-package" value="CDVBroadcaster" />
</feature>
放到自己项目config.xml对应位置,如图:
ionic项目需配置的路径图
到这里插件已添加完成
4、插件添加完,app代码实现对应交互:
a、ionic页面监听:
//eventName:需与web端统一,功能推送名称
[[NSNotificationCenter defaultCenter] addObserverForName:@"eventName"
object:nil
queue:[NSOperationQueuemainQueue]
usingBlock:^(NSNotification*note) {
NSLog(@"Handled 'js to native' [%@]", note.userInfo[@"item"]);
NSDictionary*dic = note.userInfo[@"item"];
}];
b、web端实现代码,举个例子:
function pushMorePage()
{ // 这句代码是 用于传值给 原生的
this.broadcaster.fireNativeEvent('eventName', {"item":'我是来自ionic的值'}).then(() => console.log('IonicReceiver CDVBroadcaster'));
}
<button onclick="pushMorePage()",type="button">尽然成功了</button>
5、app回传数据给ionic
[[NSNotificationCenter defaultCenter] postNotificationName:@"eventName" object:nil userInfo:@{ @"eventName": @""}];
总结:
1、web与app交互,推送监听对应功能名需要统一,才能收的到
完结
附上ionic基础项目(有cordova-plugin-broadcaster插件)创建:
注意:如果需要创建完整的带有copush的ionic项目,可参考:https://www.jianshu.com/p/bb78e8ffe654
1、ionic start codepush-ionic-NB tabs
创建tabs样式的ionic3项目
不需要Ionic Pro SDK
2、cd codepush-ionic-test 进入项目文件夹
3、ionic cordova plugin cordova-plugin-broadcaster 添加插件:
4、ionic cordova platform add ios iOS ionic项目创建














网友评论