簡體   English   中英

HTML5 phonegap webapp在safari或其他原生應用中打開鏈接

[英]HTML5 phonegap webapp open links in safari or other native app

我有一個工作,接受和批准的蘋果,html5 phonegap webapp但我無法獲得外部鏈接打開safari或地圖應用程序。 Android版本的問題是一樣的。

發生的事情是,當點擊/點擊鏈接時,我猜,phonegap inappbrowser抓取window.open事件並將外部頁面加載到當前窗口實例中,並且沒有后退鍵。

該應用程序現在只是顯示外部加載的頁面,直到它退出並重新啟動。

我已經閱讀了大量關於此的評論和論壇。 我已經遵循了我能找到的所有選項,但問題仍然存在。

有人可以告訴我我哪里出錯了,因為我正以驚人的速度失去頭發......

使用phonegap.js和jquery使用Phonegap 3.1在線構建。 我通過Jquery捕獲外部鏈接,這一切都有效。

請在下面找到我正在使用的代碼。

// capture external link click or tap?
$(document).on('click', 'a[data-rel="external"]', function(e){
e.preventDefault();
var targetURL = $(this).attr("href");
console.log('external link: '+targetURL);
var ref = window.open(targetURL, '_system', 'location=yes');
});

我已經閱讀了關於configg 頁面鏈接到phonegap的phonegap文檔,這就是我添加到它的內容。

<preference name="phonegap-version" value="3.1.0" />
<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser" />
<plugin name="InAppBrowser" value="CDVInAppBrowser" />

我也讀過Apple url-scheme-name,並在config.xml中使用它:

<gap:url-scheme name="com.canal-st.canal-st" role="None">
<scheme>mailto</scheme>
<scheme>tel</scheme>
<scheme>http</scheme>
</gap:url-scheme>

我肯定錯過了什么。 最后我調用mobileinit綁定是在jquery.mobile之前調用的:

<script src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).bind("mobileinit", function(){
   $.support.cors = true;
   $.mobile.allowCrossDomainPages = true;
   $.mobile.pushState = false;
   console.log('in mobileinit');
});
</script>
<script src="js/jquery.mobile-1.3.1.min.js"></script>

我知道這里有很多類型的問題,但是沒有一個解決方案可行,或者是新版本的phonegap導致了問題?

你的window.open應該使用'_self'而不是system。 例:

$(document).on('click', 'a[data-rel="external"]', function(e){
    e.preventDefault();
    ....
    var ref = window.open(targetURL, '_self', 'location=yes');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM