又说到phonegap了, 最近用的比较多.话说Android 3.0以后, sdk中增加了Fragment控件, 包括后来android退出的support的lib中, 也包含了Fragment, 这个东西确实很方便. 但当我们想在Fragment中使用CordovaWebView的时候, 出现问题了.
官方的例子中, 单独使用CordovaWebView时候, 需要包含CordovaWebView的Activity实现CordovaInterface接口. 那我们就照葫芦画瓢, 让包含有CordovaWebView的Fragment实现CordovaInterface. 理论上这样就可以了. 但运行起来后, 会出异常, 报phonegap在init时候出错了.
这个怎么回事呢, 很是郁闷. 尝试了很多方法, 使用无法解决这个init出错的问题.
再次打开官方的doc文档, 发现官方里必须是一个Activity实现CordovaInterface接口. 灵光一闪, 好吧, 那我直接让我的Fragment所属的FragmentActivity实现CordovaInterface接口是否可以呢. 试试先!
吧啦吧啦 吧啦吧啦 吧啦吧啦 吧啦吧啦 吧啦吧啦 吧啦吧啦
竟然成功了, 虽然这个FragmentActivity并不知道哪里会出现CordovaWebView. 此时会有个隐患问题, 就是对于CordovaWebView的加载事件的监听, 也是在CordovaInterface进行的. 如果一个界面中, 同时有多个Fragment都使用了CordovaWebView, 估计在事件捕获上会有问题吧.