PhoneGap l f=U´$ LL=Oíphonegap-plugins / Merge pull request #1121 from madeinstefano/master...

22
PhoneGap通信原理和插件系统 @范圣刚

Transcript of PhoneGap l f=U´$ LL=Oíphonegap-plugins / Merge pull request #1121 from madeinstefano/master...

PhoneGap通信原理和插件系统

@范圣刚

Agenda

•通信机制的实现原理•获取 PhoneGap 插件

•使⽤用 PhoneGap 插件

•开发 PhoneGap 插件

Corvoda.exec() in cordova.js

Android 平台通信原理

nativeapiprovider

promptbasednativeapi(json转换)

浏览器的 prompt

DroidGap.java

CordovaActivity

CordovaChromeClient.java

iOS 平台的通信原理

封装的命令对象 + 不可⻅见的⼀一个 iFrame

github.com/phonegap/phonegap-plugins

使⽤用 SMSPlugin 发送短信

https://github.com/dimitrismistriotis/SendSmsCordovaPlugin

插件编写

•⾄至少有⼀一个扩展⾃自 CordovaPlugin 类的 Java 类

•必须要覆盖⼀一个 CordovaPlugin 的 execute ⽅方法

JS 和本机代码通讯的⽅方法cordova.exec( function(winParam) {}, function(error) {}, "service","action", ["firstArgument", "secondArgument", 42, false]);

• function(winParam){} - exec 执⾏行成功的回调⽅方法

• function(error){} - 操作未成功的回调⽅方法

• service - 本地服务名称。⼀一般映射到⼀一个类。

• action - 执⾏行的服务的具体操作。本机端收到 exec 调⽤用时收到的参数,⼀一般映射到⼀一个本机的⽅方法

• [arguments] - 传⼊入本机环境的参数

noti!cation.alert in cordova.js

Noti!cation.java in cordova-android

alert() method

Camera.getPicture() in cordova.js(iOS)

CDVCamera.h

CDVinvokeUrlCommand.h