我有一個基於cordova 2.6和jqm 1.3構建的iOS/Android應用程序。我需要在用戶點擊一個按鈕後打開一個到外部網站的鏈接。我正在使用的代碼是:Phonegap window.open不適用於Android
var ref = window.open('http://google.com','_self','location=yes');
ref.addEventListener('loadstart',function(event) {
console.log('load started');
});
ref.addEventListener('loadstop',function(event) {
console.log('load stopped');
});
ref.addEventListener('loaderror',function(event) {
console.log('load error = ' + JSON.stringify(event));
});
在iOS上,一切都像我所期望的那樣執行。隨着谷歌網站的加載,一個新的瀏覽器窗口打開。但我無法在Android中加載任何內容。當我點擊按鈕時,沒有任何反應。我已經在window.open之前和之後放置了控制檯語句,所以我知道代碼至少正在執行。
我config.xml中應該是敞開的白名單的網站:
<access origin=".*"/>;
我已經在Nexus 7(安卓4.2)和Android 2.2的模擬器上都相同的結果進行測試。
有誰知道爲什麼window.open不會在android上正確觸發嗎?
您的config.xml文件中列出了InAppBrowser插件嗎?你在AndroidManifest.xml中有互聯網權限嗎? – MBillau 2013-05-02 19:03:21
兩者都在那裏。我剛剛使用了創建新phonegap項目時創建的基本清單。 '<使用權限android:name =「android.permission.INTERNET」/>'是在我的清單和'<插件名稱=「InAppBrowser」value =「org.apache.cordova.InAppBrowser」/>'是在我的配置.xml – whynotmatt 2013-05-02 19:56:05
我剛剛在我的Nexus 7(4.2)上嘗試過使用相同的設置,但沒有問題...但是,我沒有使用jqm ...也許這可能是個問題?如果你只是用香草JavaScript啓動該功能,它是否工作?你確實說過,你正在獲取console()消息,但是......我假設在日誌中沒有任何內容? – MBillau 2013-05-02 20:05:45