Phonegap 3.3.0中inappbrowser的事件没有触发。

3
我使用phonegap开发应用程序。这个应用程序与一些API一起工作,因此我必须使用inappbrowser插件。但是在phonegap 2.9.x版本之后,插件的事件不会触发。您可以在这个论坛上查看这个问题:https://groups.google.com/forum/#!topic/phonegap/e5_5unC2fYs Apache对此有一个公告。announcement但这并不能解决问题。因为当我尝试在Dreamweaver中使用phonegap时,我可以在Dreamweaver构建服务中选择phonegap 2.9版本,并且Inappbrowser事件可以在Android 4.x设备上工作。所以问题不在于Android版本,而在于Phonegap版本。对于某些sdk(admob等),我必须使用eclipse。而且我无法通过命令行创建Phonegap 2.9版本的应用程序。您有关于创建应用程序时如何选择版本或降级phonegap版本的任何想法吗?谢谢您的回答。
3个回答

4

我自己没有测试过,但如果您正在使用PhoneGap Build,则可以尝试按照以下格式包含插件:

<gap:plugin name="org.apache.cordova.inappbrowser" />

以及相关文档:

<feature name="InAppBrowser">
    <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
</feature>
<feature name="InAppBrowser">
    <param name="ios-package" value="CDVInAppBrowser" />
</feature>

请查看此页面了解插件详情。
我在升级2.9.0至3.3.0时遇到了一些问题,后来发现我以这种格式包含了我的插件:
<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser" />

由于某些原因,当我使用 <br> 格式时,它不起作用,但当我使用 <p> 格式时,我的插件又开始工作了。

希望这能帮到你。


0
原来我的问题不是事件没有触发,而是回调代码中有一个错误(一个ReferenceError)。由于这个回调是在InAppBrowser收到“loadstart”事件时第一个运行的回调,所有未来的回调都没有运行,因为第一个回调引发了异常,使得看起来像是InAppBrowser根本没有触发任何回调。
我发现这个问题的方法实际上是通过在weinre中手动评估回调函数。
cordova.require('cordova/exec').nativeCallback('InAppBrowser115751764',1,
  {
    "url" : "http:\/\/example.com\/path",
    "type" : "loadstart"
  }
,1)

我通过查看详细的PhoneGap exec日志获得了上面的片段。您还可以通过检查cordova.callbacks对象来找到回调ID。


0

尝试安装Cordova:

sudo npm install -g cordova

安装插件inappbrowser:

cordova plugin add org.apache.cordova.inappbrowser

现在运行:

phonegap run android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接