2015-04-03 90 views
6

我正在處理一個Ionic/Cordova應用程序,我在其中加載包含外部鏈接的提要和新聞。我需要在應用程序之外加載這些外部鏈接,而不是在InAppBrowser中,但在手機瀏覽器中。加載外部Ionic /科爾多瓦應用程序的外部鏈接

是否有可能將此作爲所有鏈接的默認行爲?

+0

你到目前爲止嘗試過什麼?你能編輯你的問題並提供一些代碼嗎? – 2015-04-03 11:01:57

+0

我通常使用window.open和targer系統打開外部鏈接,在這種情況下,我需要在Feed中嵌入的每個鏈接上動態加載 – 2015-04-03 12:53:46

回答

2

對於外部鏈接,您必須使用inAppbrowser插件。包含在手機瀏覽器中打開的插件後,您需要使用該插件。使用代碼

var ref = window.open('http://apache.org', '_system', 'location=yes'); 

/* 
_self: Opens in the Cordova WebView if the URL is in the white list, otherwise it opens in the InAppBrowser. 
_blank: Opens in the InAppBrowser. 
_system: Opens in the system's web browser. 
*/ 
+0

謝謝,但是我的鏈接已嵌入到應用中加載的Feed中,我需要('http://apache.org','_system','location = yes');一個過濾器或其他東西來轉換window.open中的每個鏈接。 – 2015-04-03 12:51:23

+0

我有一個問題,這不起作用 - 這是因爲我已經刪除了「cordova.js」在瀏覽器中的白色測試:我....不要做同樣的錯誤傢伙:) – Thylle 2017-01-25 10:21:57

2

您有以下插件

> ionic plugin add cordova-plugin-inappbrowser 

安裝內部的index.html

<div class="list"> 
    <a class="item" href="#" onclick="window.open('http://google.com', '_system', 'location=yes'); return false;"> 
     Open Browser 
    </a>  
</div> 

有關此插件訪問plugin page更多信息。

5

要使用相應的系統應用程序打開URL,您需要whitelist plugin。如果您的項目基於腳手架演示程序,則應該已經安裝。如果沒有(或僅僅是爲了保證):

ionic plugin add cordova-plugin-whitelist 

一旦插件安裝後,你將不得不指定intend你想從你的應用程序中打開。在你的config.xml中,添加:

<allow-intent href="http://*/*" /> 
<allow-intent href="https://*/*" /> 
<allow-intent href="tel:*" /> 
<allow-intent href="sms:*" /> 
<allow-intent href="mailto:*" /> 
... 

鑑於上述規則,所有的URI與指定協議的一個聲明(HTTP,HTTPS,電話,短信,郵寄地址,...)將使用相應的開放系統應用。當然,通過用實際值替換*通配符可以更具體。

有關其他詳細信息,請參閱this article

+0

謝謝,這是完全是我需要用系統瀏覽器打開外部URL而無需額外的插件。 – keupsonite 2016-06-27 13:13:43

+0

截至今天,關於這個話題的答案可能與這個答案一樣簡單。 – kumar 2016-11-18 11:55:00

相關問題