Android 自定義scheme及多端喚起使用方法

前言

DeepLink,深度鏈接技術(shù),類似于web開發(fā)領(lǐng)域不僅僅是通過鏈接打開一個界面邪意,而是打開界面的某個具體內(nèi)容。常用于web端喚起app時反砌,傳遞參數(shù)直接打開確定的界面雾鬼,如通過京東的分享出去的商品詳情頁,實(shí)現(xiàn)在京東app中打開于颖。

在移動開發(fā)領(lǐng)域呆贿,是指app在處理特定的url時能夠直接跳轉(zhuǎn)到對應(yīng)的內(nèi)容頁面或者觸發(fā)特定的邏輯。這樣可以在web端切換app時通過參數(shù)傳遞保留了當(dāng)前的上下文狀態(tài),又可以借用web端的優(yōu)勢做入,更利于傳播冒晰,可利用搜索引擎的索引,增加app的日活和下載量等竟块。

移動端實(shí)現(xiàn)deeplink于是就有了Universal Link壶运、App Link、URL schemes等

Android配置scheme

如配置WebActivity完整的打開鏈接為openapp://test:8000/detail浪秘,需要在AndroidManifest.xml配置

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

        <category android:name="android.intent.category.DEFAULT" />
        <!--需要被js調(diào)起必須設(shè)置-->
        <category android:name="android.intent.category.BROWSABLE" />
        <!--協(xié)議部分-->
        <data
            android:host="test"
            android:path="/detail"
            android:port="8000"
            android:scheme="openapp" />
    </intent-filter>
</activity>

協(xié)議部分:(類比于http://locahost:8080/home

  • android:scheme:協(xié)議名蒋情,類似于http
  • android:host:主機(jī)名,類似于locahost
  • android:port:端口名耸携。類似于8080中的端口
  • android:path:路徑名棵癣,類似于home
  • 還可以配置imei等等。結(jié)構(gòu)為<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>]

Android端調(diào)起

通過指定Intent的Action為Intent.ACTION_VIEW夺衍,傳入解析的Uri

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("openapp://test:8000/detail?title=電視影音&url=https://u.jd.com/1dfFwO"));
startActivity(intent);

傳遞參數(shù)的方法跟web端一樣狈谊,通過問號?分隔,參數(shù)名和值之間使用等號=連接沟沙,多個參數(shù)之間使用&拼接河劝。

Android端參數(shù)接收

Uri uri = getIntent().getData();
if (uri != null) {
    // 完整的url信息
    String totalUrl = uri.toString();
    Log.i(TAG, "完整url: " + totalUrl);
    // scheme 協(xié)議
    String scheme = uri.getScheme();
    Log.i(TAG, "scheme: " + scheme);
    // host 主機(jī)
    String host = uri.getHost();
    Log.i(TAG, "host: " + host);
    //port 端口
    int port = uri.getPort();
    Log.i(TAG, "port: " + port);
    // 訪問路徑
    String path = uri.getPath();
    Log.i(TAG, "path: " + path);
    // 獲取所有參數(shù)
    String query = uri.getQuery();
    Log.i(TAG, "query: " + query);
    //獲取指定參數(shù)值
    String title = uri.getQueryParameter("title");
    Log.i(TAG, "title: " + title);
    String url = uri.getQueryParameter("url");
    Log.i(TAG, "url: " + url);
}

喚起后可以看見打印的日志信息:


image

拿到參數(shù)之后就可以進(jìn)行后續(xù)的使用操作啦

web端喚起

直接當(dāng)做一個普通的連接形式,直接跳轉(zhuǎn)

window.location = "openapp://test:8000/detail?title=電視影音&url=https://u.jd.com/1dfFwO";  

或者設(shè)置超鏈接等待用戶點(diǎn)擊

<a href="openapp://test:8000/detail?title=電視影音&url=https://u.jd.com/1dfFwO">在app中打開</a>

原文鏈接

?? 更多好文歡迎關(guān)注我的公眾號~

公眾號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矛紫,一起剝皮案震驚了整個濱河市赎瞎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颊咬,老刑警劉巖务甥,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贪染,居然都是意外死亡缓呛,警方通過查閱死者的電腦和手機(jī)催享,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門杭隙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人因妙,你說我怎么就攤上這事痰憎。” “怎么了攀涵?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵铣耘,是天一觀的道長。 經(jīng)常有香客問我以故,道長蜗细,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮炉媒,結(jié)果婚禮上踪区,老公的妹妹穿的比我還像新娘。我一直安慰自己吊骤,他們只是感情好缎岗,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著白粉,像睡著了一般传泊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸭巴,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天眷细,我揣著相機(jī)與錄音,去河邊找鬼鹃祖。 笑死薪鹦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惯豆。 我是一名探鬼主播池磁,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼楷兽!你這毒婦竟也來了地熄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤芯杀,失蹤者是張志新(化名)和其女友劉穎端考,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揭厚,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡却特,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了筛圆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裂明。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖太援,靈堂內(nèi)的尸體忽然破棺而出闽晦,到底是詐尸還是另有隱情,我是刑警寧澤提岔,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布仙蛉,位于F島的核電站,受9級特大地震影響碱蒙,放射性物質(zhì)發(fā)生泄漏荠瘪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哀墓。 院中可真熱鬧鞭莽,春花似錦、人聲如沸麸祷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阶牍。三九已至喷面,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間走孽,已是汗流浹背惧辈。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留磕瓷,地道東北人盒齿。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像困食,于是被迫代替她去往敵國和親边翁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345