Phonegap 3.3.0 inappbrowser的事件没有解雇

时间:2014-01-16 11:02:51

标签: android cordova phonegap-plugins inappbrowser

我使用phonegap开发应用程序。这个应用程序适用于一些apis所以,我必须使用inappbrowser插件。但是在phonegap 2.9.x版本之后,插件的事件没有被触发。您可以在此论坛https://groups.google.com/forum/#!topic/phonegap/e5_5unC2fYs

上查看此问题

。 Apache有一个关于它的公告。announcement但它不是解决方案。因为,当我尝试使用dreamweaver的phonegap时,我可以在Dreamweaver Build服务中选择phonegap 2.9版本,在Android 4.x设备上选择Inappbrowser事件。所以,问题不在于Android版本。问题是关于Phonegap版本。对于一些sdks(admob,...)我必须使用eclipse。我不能用命令行创建一个Phonegap 2.9版本的应用程序。你有什么想法在创建应用程序时选择版本。或者更改降级phonegap版本。 谢谢你的答案。

3 个答案:

答案 0 :(得分:4)

我自己没有测试过,但是如果你正在使用phonegap版本,你可以尝试以这种格式包含插件:

<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>

请参阅此page了解插件详细信息

我在从2.9.0升级到3.3.0时遇到了一些麻烦,事实证明我以这种格式包含了我的插件:

<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser" />

,由于某种原因无效,当我使用格式时,我的插件再次开始工作。

希望这有帮助。

答案 1 :(得分:0)

事实证明,我的问题不是事件没有触发,而是我的回调代码中有一个错误(ReferenceError)。由于此回调是InAppBrowser收到“loadstart”事件时要运行的第一个回调,因为所有未来的回调都没有运行,因为第一个回调引发了异常,使得看起来InAppBrowser根本没有触发任何回调。 / p>

我发现这种方式实际上是通过手动评估weinre中的回调。

cordova.require('cordova/exec').nativeCallback('InAppBrowser115751764',1,
  {
    "url" : "http:\/\/example.com\/path",
    "type" : "loadstart"
  }
,1)

我通过查看verbose PhoneGap exec logs获得了上述代码段。您还应该能够通过检查cordova.callbacks对象找到回调ID。

答案 2 :(得分:0)

尝试安装cordova:

sudo npm install -g cordova

安装插件inappbrowser:

cordova plugin add org.apache.cordova.inappbrowser

现在运行:

phonegap run android