hybrid APP(ionic)

Ionic调研(一)——Ionic与原生通讯问题(Cordova

2018-09-07  本文已影响1人  BryantXie

在网上找到一个Cordova插件Cordova-Broadcaster,用于Ionic和原生的交互,GitHub上有源码和Sample,这里主要讲使用时的问题。

1. 使用步骤

  1. 安装配置ionic
  2. 安装Cordova-Broadcaster插件

ionic cordova plug add cordova-broadcaster --save

  1. 编写代码,请参考Sample

2. Cordova-Broadcaster解析

这个插件是一个原生插件

target OS Native Technology
IOS NotificationCenter
Android LocalBroadcastManager

其中Android平台对应的插件代码封装在了一个CDVBroadcasterjava类中。

3. 使用问题

3.1 在浏览器中跑报错

Error: Uncaught (in promise): cordova_not_available


image.png

原因是,使用到Native插件时不支持在浏览器中跑。

3.2 在真机上跑报错

plugin not installed

打开AS,查看目录结构,在src/org目录下确实未找到CDVBroadcaster这个类,说明插件安装或者编译出了问题。
解决方案:

打开终端,重新安装插件,再次运行ionic cordova run android,运行成功,不报这个错误了。

3.3 在真机上跑不报错,但是没有收到广播

这个问题的原因出在LocalBroadcastManager上面,LocalBroadcastManager是support.v4包提供的类,在编译后虽然会在依赖中添加v4包的依赖,但是实际上若本机上没有对应平台的v4包则无法引用到。
解决方案:

  1. 修改v4包为本地有的包
  2. 打开AS,点击sync下载对应的包,然后run
上一篇下一篇

猜你喜欢

热点阅读