准备工作
安装ionic环境:http://ionicframework.com/getting-started/。
- cordova plugin add cordova-plugin-wechat –variable wechatappid=YOURWECHATAPPID, or using plugman, phonegap, ionic
- cordova build ios or cordova build android
- (iOS only) if your cordova version <5.1.1,check the URL Type using XCode
安装cordova-plugin-inappbrowser插件。
正文
在inappbrowser中实现微信登陆和支付功能和在ionic环境中直接写微信登陆和支付功能差不多。
主要的难点是在本地代码与webapp的通信问题。
两者的window完全是两个不一样的对象。这个问题困扰了我很久。最后通过ref.executeScript的方法来解决了。
具体就是通过监听loadstart事件来执行ref.executeScript,获取webapp的某个变量来触发本地代码的执行。
这里有个需要注意的就是webapp怎么去改变这个变量,并触发本地代码去执行。经过多重实验表明用如下方法即可(注意这段代码是webapp写的)。
那么,本地代码应该怎么写呢?
总结
理解了ref.executeScript和loadstart的概念,并且懂得了如何传递变量,基本上就搞定了。