此自定義僅供參考!
首先打開androidManifest.xml
在MainActivity中添加如下內容:
<activity android:name=".MainActivity"> ...... <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:scheme="com.example.androidtest" /> </intent-filter> </activity>
其中data標簽裡面android:scheme用於指定協議,類似於http這樣的東西,這裡我們指定成了com.example.androidtest,
這是一個自定義的協議,指定成這樣是為了避免和其它的應用程序沖突.
我們還可以通過android:host來指定域名,android:port來指定端口,android:path來指定路徑,
這些屬性都可以對deep links進行更多的限制,要滿足特定條件才能打開指定App.
順便說下https://www.baidu.com/s?cl=3&wd=deeplink 拆分的意思對應下面的
scheme://host:port/pathorpathPrefixorpathPattern
https表示加密的協議 對應android data標簽裡面的scheme
www.baidu.com 表示域名 對應data標簽裡面的host
s 表示端口 對應data標簽裡面的port
cl=3&wd=deeplink 表示path路徑 對應data標簽裡面的path
這些屬性是可選的,但也是相互依賴的。如果沒有給Intent過濾器指定scheme屬性,那麼所有其他的URI屬性都會被忽略。如果沒有給過濾器指定host屬性,那麼port屬性和所有的路徑屬性都會被忽略。