Cordova 3.4.0 InAppBrowser不工作

时间:2014-02-27 17:15:19

标签: inappbrowser

我是Cordova和JS的新手,并且一直在努力使用Cordova 3.4.0的InAppBrowser插件在iOS(Xcode v5.0.2)中工作。

使用这些命令行命令成功构建了cordova项目:

cordova create InAppBrowserTest3-4 local.test InAppBrowser_Test3-4
cordova plugin add org.apache.cordova.inappbrowser
cordova platform add ios
cordova plugins
[ 'org.apache.cordova.inappbrowser' ]

www配置文件包含:

<feature name="InAppBrowser">
    <param name="ios-package" value="CDVInAppBrowser" />
</feature>

只有这些附加命令被添加到生成的onDeviceReady方法中才能运行InAppBrowser:

onDeviceReady:function(){         app.receivedEvent( 'deviceready');

//added these lines below
    alert('deviceReady');
    var ref = window.open('http://apache.org', '_blank', 'location=yes');
    ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); });
    ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); });
    ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); });
    ref.addEventListener('exit', function(event) { alert(event.type); });
    alert('end deviceReady');
}

执行时,不会调用最后一个警报,也不会打开任何浏览器。类似的代码使用Cordova 2.9.0成功运行。

有没有人有任何建议?我已阅读了几篇类似的帖子,但尚未找到解决方案。

3 个答案:

答案 0 :(得分:5)

要解决此问题,请尝试以下操作:

cordova create hello com.example.hello HelloWorld

cd hello

cordova platform add android

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git

cordova build

请注意“cordova build”步骤,该步骤会创建platform/ios/www目录,您可以在其中找到正确安装了文件夹插件的文件cordova_plugins.js

答案 1 :(得分:0)

我尝试手动将数据添加到platforms/ios/www/plugins/cordova_plugins,但每当我执行run ios时,它都会被构建过程覆盖。对我有用的是cordova platform remove ios然后cordova platform add ios

这出现在我的cordova_plugins.js文件中:

{
    "file": "plugins/org.apache.cordova.inappbrowser/www/inappbrowser.js",
    "id": "org.apache.cordova.inappbrowser.inappbrowser",
    "clobbers": [
        "window.open"
    ]
},

它留在那里。现在工作正常。

答案 2 :(得分:0)

我在云上使用PhoneGap编译。

包括

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

进入xml配置文件。确保你的cordova.js在其他javascript的顶部包含在index.html中。这应该有用。