2015-05-20 40 views
2

裏面有一個使用webView的messenger chrome打包應用程序。我如何在瀏覽器中打開信使的鏈接?如何從打包的應用程序網頁視圖打開鏈接到默認瀏覽器?

項目是開源:https://github.com/clicman/OdSkype

+0

哪部分你有問題?攔截導航請求,或在瀏覽器中打開結果? – Xan

+0

在瀏覽器中打開鏈接時出現問題。應用程序在單獨的過程中,我不知道如何告訴它打開瀏覽器中的鏈接。正如我看到它試圖在應用程序上下文中打開它,而不是在瀏覽器中。 –

+0

這聽起來像是兩個問題一次。這個問題可以分爲兩部分:1)截取webview試圖導航到'url',阻止它並將其傳遞給一個函數,該函數將在默認瀏覽器或Chrome中專門打開'url'。你解決了第1部分?對於1) – Xan

回答

2

如果url是你想從一個Chrome應用瀏覽器打開的網址,你有2種可能:

  1. 打開URL在用戶的默認瀏覽器:

    window.open(url); 
    
  2. 打開網址在Chrome中明確,無論是默認瀏覽器設置的,有a recent API

    chrome.browser.openTab({url: url}); 
    

    這需要"browser"權限。

+0

優秀!它只需要添加「瀏覽器」權限的清單。謝謝! –

+1

請注意,如果您從應用程序的後臺(事件)頁面調用window.open,並且您的默認瀏覽器是Chrome,則生成的選項卡將無法訪問'window.localStorage',這意味着,例如,任何頁面這需要某種身份驗證或取決於Cookie將被破壞。這是一個已知的bug,但它的重要性現在已經被'chrome.browser.openTab'減少了。儘管如此,window.open應該已被標記爲不適用於Chrome應用程序(可能會打印診斷)。 –

+0

@SergeyShevchenko請根據問題編號定義「已知錯誤」。 – Xan

相關問題