2014-06-05 101 views
3

我正在使用Phonegap Build來部署mi Apps,我使用的是Cordova 3.3.0版本。在Phonegap Build App中打開外部鏈接

我想在本地瀏覽器中打開外部鏈接(Android/iOS)。我試圖使用科爾多瓦的InAppBrowser插件,但它對我無效。打開鏈接,但在應用程序內部沒有後退按鈕...:/

我見過類似Include phonegap.js file的答案(但是在使用Phonegap Build進行部署時,您不必包含它,PGB會爲你做)或使用或using a function to open links + InAppBrowser Plugin,甚至誰說這是固定的deploying locally,但我不能在本地部署,因爲我的Mac不支持新版本的XCode和iOS SDK的。

這是我config.xml中的相關代碼:

<preference name="phonegap-version" value="3.3.0" /> 
<gap:plugin name="org.apache.cordova.inappbrowser" version="0.3.3" /> 
<feature name="InAppBrowser"> 
    <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" /> 
    <param name="ios-package" value="CDVInAppBrowser" /> 
</feature> 
<access origin="*" /> 

這是JS功能我一直想:

function abrirURL(url){ 
    if(device.platform === 'Android') { 
     navigator.app.loadUrl(url, {openExternal:true}); 
    } else { 
     window.open(url, '_system'); 
    } 
} 

而且鏈接我嘗試過,從最基本的功能到使用:

<a href="http://www.example.com" target="_blank">Link</a> 
<a href="#" onClick="abrirURL('http://www.example.com');">Link</a> 
<a href="#" onClick="window.open('http://www.example.com', '_blank');"> 
<a href="#" onClick="window.open('http://www.example.com', '_system');"> 

這對我來說沒有任何作用,請有人幫助我。謝謝!

回答

1

我的問題的解決方案是include phonegap.js file<head>在所有的地方我會用InAppBrowser頁:<script src="phonegap.js"></script>

我要解釋一下,爲什麼這個解決方案在第一次似乎沒有邏輯我(也許你也是),但後來我嘗試了,它的工作原理。

這是PhoneGap的他plugin documentation節說:

「如果一個插件利用js-module元素直接科爾多瓦加載插件的JavaScript,然後沒有<script>引用將需要加載插件這是核心科爾多瓦插件的情況

InAppBrowser是一個核心的cordova插件。但出於某種奇怪的原因,直到包含phonegap.js文件(至少在0.3.3版本)纔會起作用。

注意:我發現了一個錯誤。有人說你必須包含3個文件:phonegap.js,cordova.jscordova_plugins.js。但是,當我包含這3個文件時,我的應用程序在iOS 7中工作正常,但在iOS 6中忽略插件的使用(使用:Cordova 3.3.0 + Phonegap Build + InAppBrowser 0.3.3)。

0

我需要做兩件事才能讓它在3.7.0中工作。

config。XML

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

在HTML標籤一個

<a onclick="window.open(this.href,'_system','location=no');return false;" href="http://stackoverflow.com"> 

其實我寫了一個函數來處理這個,所以我的HTML是正常

$(document).on('click','a',function(e) { 
    if ($(this).attr('target') === '_blank') { 
     window.open($(this).attr('href'),'_system','location=no'); 
     e.preventDefault(); 
    } 
}); 
相關問題