Android 点击应用外的Url拉起应用
最近工作上遇到個新的情況,簡單了解了一下。把相關(guān)的知識簡單記錄一下。
情況是一個android應(yīng)用會在其他平臺上分享東西,分享的內(nèi)容里有條url,要求用戶點(diǎn)擊該url的時候拉起應(yīng)用并進(jìn)行處理。
其實(shí)網(wǎng)上一搜就會找到答案,但是這些答案都不算太全,這里整合一下。
首先在AndroidManifest.xml中被拉起的Activity下添加如下代碼:
<intent-filter>??<category?android:name="android.intent.category.BROWSABLE"?/><data?android:scheme="xxxx"?/><!--?xxxx這個自己隨便定義。?-->??</intent-filter>??添加第二行后,點(diǎn)擊url的時候該activity會和默認(rèn)瀏覽器一起出現(xiàn)在選擇窗口;第三行則可以自己定義一個協(xié)議,這樣點(diǎn)擊以“xxxx://”開頭的url都會拉起該activity。
url里也可以添加數(shù)據(jù),在拉起的activity里通過intent來獲取數(shù)據(jù),這樣就可以傳遞一些必須的參數(shù)。
String tSchema = tIntent.getScheme(); Uri myURI = tIntent.getData();?第一行代碼可以獲取該url的協(xié)議,如果是我們定義的url那就應(yīng)該是“xxxx”。第二條則會獲取Uri形式的url,這樣就可以通過Uri的方法來獲取需要的數(shù)據(jù)。
下面是一個老外的舉例,可以很直觀的了解如何獲取uri傳遞的數(shù)據(jù)
ps: http://twitter.com/status/1234
Uri data = getIntent().getData(); String scheme = data.getScheme(); // "http" String host = data.getHost(); // "twitter.com" List<String> params = data.getPathSegments(); String first = params.get(0); // "status" String second = params.get(1); // "1234"如果url帶有參數(shù),還可以用 data.getQueryParameter("SID")? 方法來獲取指定(“SID”)參數(shù)的值。
Uri的方法還有很多,比如getLastSegments()等等,有興趣可以自己去查看api。
?
總結(jié)
以上是生活随笔為你收集整理的Android 点击应用外的Url拉起应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maven(android-maven-
- 下一篇: android sina oauth2.