2014-07-10 67 views
1

我一直在互聯網上搜索幾個小時,無法看到找到解決我的問題。window.open不適用於Android PhoneGP

我創建了一個簡單的Phonegap應用程序,現在我想鏈接到外部網頁。我正在科爾多瓦3.0,這裏是安裝在我的插件列表:

org.apache.cordova.core.inappbrowser 0.2.0 "InAppBrowser" 
org.apache.cordova.core.splashscreen 0.2.0 "Splashscreen" 
org.apache.cordova.device 0.2.3 "Device" 
org.apache.cordova.inappbrowser 0.5.0 "InAppBrowser" 

和這裏的如何,我試圖打開一個鏈接:在iOS上,但在Android

<a onclick="var ref = window.open('http://www.google.co.uk', '_system', 'location=yes');" id="external-link">Link</a> 

所有工作完全沒問題什麼都沒發生。我檢查了logcat,我沒有收到任何錯誤,沒有反饋,它只是不起作用。

我也試過navigator.app.loadUrl但後來我得到,說:「不能加載的不確定網址」

我真的希望這將是一個簡單的事,但到目前爲止,它的駕駛我瘋了,任何人的錯誤對我做錯了什麼有什麼建議?

僅供參考:

cordova_plugins.js

cordova.define('cordova/plugin_list', function(require, exports, module) { 
module.exports = [ 
    { 
     "file": "plugins/org.apache.cordova.core.splashscreen/www/splashscreen.js", 
     "id": "org.apache.cordova.core.splashscreen.SplashScreen", 
     "clobbers": [ 
      "navigator.splashscreen" 
     ] 
    }, 
    { 
     "file": "plugins/org.apache.cordova.core.inappbrowser/www/InAppBrowser.js", 
     "id": "org.apache.cordova.core.inappbrowser.InAppBrowser", 
     "clobbers": [ 
      "window.open" 
     ] 
    }, 
    { 
     "file": "plugins/org.apache.cordova.device/www/device.js", 
     "id": "org.apache.cordova.device.device", 
     "clobbers": [ 
      "device" 
     ] 
    }, 
    { 
     "file": "plugins/org.apache.cordova.inappbrowser/www/inappbrowser.js", 
     "id": "org.apache.cordova.inappbrowser.inappbrowser", 
     "clobbers": [ 
      "window.open" 
     ] 
    }, 
] 
}); 

config.xml中

<widget xmlns  = "http://www.w3.org/ns/widgets" 
     id  = "io.cordova.helloCordova" 
     version = "2.0.0"> 
    <name>Hello Cordova</name> 

    <description> 
     A sample Apache Cordova application that responds to the deviceready event. 
    </description> 

    <author href="http://cordova.io" email="[email protected]"> 
     Apache Cordova Team 
    </author> 

    <access origin="*"/> 

    <content src="index.html" /> 

    <preference name="loglevel" value="DEBUG" /> 
    <!-- 
     <preference name="splashscreen" value="resourceName" /> 
     <preference name="backgroundColor" value="0xFFF" /> 
     <preference name="loadUrlTimeoutValue" value="20000" /> 
     <preference name="InAppBrowserStorageEnabled" value="true" /> 
     <preference name="disallowOverscroll" value="true" /> 
    --> 

    <feature name="App"> 
     <param name="android-package" value="org.apache.cordova.App"/> 
    </feature> 
    <feature name="Geolocation"> 
     <param name="android-package" value="org.apache.cordova.GeoBroker"/> 
    </feature> 
    <feature name="Device"> 
     <param name="android-package" value="org.apache.cordova.Device"/> 
    </feature> 
    <feature name="Accelerometer"> 
     <param name="android-package" value="org.apache.cordova.AccelListener"/> 
    </feature> 
    <feature name="Compass"> 
     <param name="android-package" value="org.apache.cordova.CompassListener"/> 
    </feature> 
    <feature name="Media"> 
     <param name="android-package" value="org.apache.cordova.AudioHandler"/> 
    </feature> 
    <feature name="Camera"> 
     <param name="android-package" value="org.apache.cordova.CameraLauncher"/> 
    </feature> 
    <feature name="Contacts"> 
     <param name="android-package" value="org.apache.cordova.ContactManager"/> 
    </feature> 
    <feature name="File"> 
     <param name="android-package" value="org.apache.cordova.FileUtils"/> 
    </feature> 
    <feature name="NetworkStatus"> 
     <param name="android-package" value="org.apache.cordova.NetworkManager"/> 
    </feature> 
    <feature name="Notification"> 
     <param name="android-package" value="org.apache.cordova.Notification"/> 
    </feature> 
    <feature name="Storage"> 
     <param name="android-package" value="org.apache.cordova.Storage"/> 
    </feature> 
    <feature name="FileTransfer"> 
     <param name="android-package" value="org.apache.cordova.FileTransfer"/> 
    </feature> 
    <feature name="Capture"> 
     <param name="android-package" value="org.apache.cordova.Capture"/> 
    </feature> 
    <feature name="Battery"> 
     <param name="android-package" value="org.apache.cordova.BatteryListener"/> 
    </feature> 
    <feature name="SplashScreen"> 
     <param name="android-package" value="org.apache.cordova.SplashScreen"/> 
    </feature> 
    <feature name="Echo"> 
     <param name="android-package" value="org.apache.cordova.Echo"/> 
    </feature> 
    <feature name="Globalization"> 
     <param name="android-package" value="org.apache.cordova.Globalization"/> 
    </feature> 
    <feature name="InAppBrowser"> 
     <param name="android-package" value="org.apache.cordova.InAppBrowser"/> 
    </feature> 
    <!-- Deprecated plugins element. Remove in 3.0 --> 
    <plugins> 
    </plugins> 
</widget> 

我也嘗試更新/重新添加InAppBrowser插件從CLI,但我得到一個錯誤,說它不支持我的Cordova版本和我需要的版本3.0,我跑sudo npm update -g cordova但後來不斷得到相同的錯誤。

任何幫助將不勝感激!

感謝

+0

在帖子中,我看到你用npm update更新了cordova,但是你是否也用「cordova platform update android」更新了你的項目? –

+0

剛剛嘗試過,我得到以下錯誤:「android」命令失敗。請確保您已安裝最新的Android SDK,並將「android」命令(工具/文件夾內)添加到您的路徑中。 我更新了Android SDK並更新了我的路徑,但仍然沒有快樂 – woolm110

+0

這還有什麼運氣嗎?我也無法打開inappbrowser。 –

回答

0

嘗試添加此:

http://docs.google.com/viewer?url= 

您試圖打開URL的前面。

因此,這將是這樣的:

if (device.platform == 'android' || device.platform == 'Android')) { 
     url = "http://docs.google.com/viewer?url= "+ url; 
    } 
2

什麼幫助我(的PhoneGap 3.2)中添加以下到您的config.xml文件:

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

這應該內加入小部件標籤。

相關問題