2014-03-19 166 views
1

我見過一些網站,如果他們有我的手機上安裝的應用程序,如果我加載網站,我可以選擇打開那裏的應用程序。這是如何實現的,因爲我想把它放到我的應用程序中。從鉻啓動我的應用程序

回答

1

他們在他們的清單註冊一個接收器,像這樣

<intent-filter> 
      <data android:scheme="" android:host="" android:path=""/> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 

其中scheme可以是http,host可以是網站和path可以是文件夾或東西

例如:

<intent-filter> 
      <data android:scheme="http" android:host="site.something" android:path="aPath"/> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 

會在您前往網站時觸發http://site.something/aPath

你需要這段代碼添加到當請求

+0

謝謝,所以'/ news'可以加載'NewsActivity','/ contact'可以加載'ContactActivity'我只需要一個單獨的intent過濾器來加載我想要加載的每個URL? –

+0

是的,這絕對有可能。你用'/ news'意圖過濾器和'ContactActivity'用'/ contact'意圖過濾器聲明一個'NewsActivity' – 0xDEADC0DE

+0

剛剛添加了這段代碼,它並沒有給我選擇器,但它也不是第一個站點我注意到這一點。是否有可能重置Chrome來給​​我選擇器,你知道嗎? –

0

在網頁上有一個腳本,它檢測OS平臺並顯示一個彈出窗口來打開Goog​​le Play。 在應用程序中,您必須註冊IntentFilter(在清單中),這會導致您的網頁的URL攔截,因此,當您點擊某個鏈接時,系統會詢問您是否喜歡用應用程序或瀏覽器打開它。

1

網址,您可以通過使您的活動可瀏覽的,你需要添加下面的代碼在你的menifest文件這樣做是應當打開的活動

<activity 
      android:name=".YourActivityName" 
      android:screenOrientation="portrait" > 
      <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="host.com" 
        android:scheme="http" /> 
      </intent-filter> 

     </activity> 

只要包含http://host.com/的任何鏈接都會被點擊,那麼android會顯示您的應用程序作爲可打開此鏈接的選項之一。而已。

相關問題