2014-03-19 37 views
3

在我的應用程序中,我設置了一個意圖過濾器來匹配特定類型的鏈接,如果在Web瀏覽器或其他字段中單擊。它目前看起來像這樣:可能會繞過Android意圖過濾器?

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 

    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 

    <data 
     android:host="www.mydomain.com" 
     android:scheme="http" /> 
    <data 
     android:host="mydomain.com" 
     android:scheme="http" /> 
    <data 
     android:host="m.mydomain.com" 
     android:scheme="http" /> 
</intent-filter> 

這很好。如果你點擊一個鏈接,說http://www.mydomain.com/article_name然後用戶可以選擇打開應用程序中的文章,我可以顯示內容的唯一。下面是問題 - 在應用程序中,我想爲用戶提供一個選項,以便仍然可以突破並「在瀏覽器中打開」。然而,如果我這樣做,只是試圖啓動瀏覽器的意圖,我的應用程序再次捕捉鏈接,我們圍繞一圈。

我該如何強制在瀏覽器中打開鏈接?

回答

1

我相信你可以使用this thread提供的答案來達到你的目的。基本上,當您啓動「打開瀏覽器」意圖時,您可以預覽將能夠打開它的活動。從那裏,你可以選擇一個不是你的應用程序,並將其設置爲意圖的包,這將導致另一個應用程序打開它。

最壞的情況下,您可以強制創建選擇器,該選擇器將同時包含您的應用和其他可以打開您的網站的應用,使用戶可以選擇瀏覽器。

This other question也可能是有用的,因爲它的答案包含一個自定義選擇器的實現,它顯然允許你過濾可見的活動,所以你可以刪除你的應用程序。