Android Studio 2.3 特性:生成Android App Links

移動應(yīng)用開發(fā)時常遇到應(yīng)用跳轉(zhuǎn)辣往、h5喚起原生頁面等使用場景,所以一個健壯的應(yīng)用需要具備路由的能力坊萝。常見的操作方法需要在manifest中針對每個頁面進(jìn)行配置钻哩,設(shè)想應(yīng)用有大量的頁面那配置工作豈不是費時費力,所以我們便來一起看看Android Studio 2.3給我們帶來了什么便利

概覽及使用

App Links是Android M以上的特有功能,即實現(xiàn)了auto-verify支持用戶點擊一個鏈接即可喚起APP扯键,而不用像以往版本中需要點擊一個選擇框列表珊肃。為了使自己的應(yīng)用支持App Links,我們常需要以下三個步驟:

  • 在manifest中創(chuàng)建Intent filter
  • 在Activity中編寫對應(yīng)的代碼邏輯處理收到的url links
  • 通過配置證書文件厉亏,關(guān)聯(lián)網(wǎng)頁和應(yīng)用

Android Studio 2.3及以上版本中提供了App Links Assistant協(xié)助開發(fā)者進(jìn)行快速配置烈和,該功能可在tools > App Links Assistant中開啟。

App Links Assistant

配置Intent filsters

首先打開URL匹配規(guī)則編輯器恬试,配置基本的Scheme、Host等信息训柴,并指定關(guān)聯(lián)的Activity對這塊不是很了解的同學(xué)可以點擊App Manifest了解各個字段的含義以及優(yōu)先級。

URL Mapping

配置完畢后可查看已配置的映射的關(guān)系洗鸵,并可以通過輸入URL進(jìn)行校驗是否調(diào)通

URL-to-Activity

選擇Activity

配置好mapping后膘滨,點擊Select Activity選擇上述配置好的Activity可自動生成以下代碼儒将。變量appLinkData以Uri的形式存儲了進(jìn)行傳遞的數(shù)據(jù),針對具體頁面開發(fā)者可編寫特定的處理邏輯贡翘。

        // ATTENTION: This was auto-generated to handle app links.
        Intent appLinkIntent = getIntent();
        String appLinkAction = appLinkIntent.getAction();
        Uri appLinkData = appLinkIntent.getData();

關(guān)聯(lián)應(yīng)用

前兩步已經(jīng)使我們的應(yīng)用具備了URL支持砰逻,在最后一步中我們將生成站點的配置文件,使其能夠喚起我們的應(yīng)用踊东。此處需要根據(jù)個人用途選擇Signing configkeystore并選擇debug/release類型刚操,點擊生成的配置文件為assetlinks.json,并將其上傳至自己的站點坚冀。

Associate Website

根據(jù)官方文檔鉴逞,特別注意的是系統(tǒng)識別Links需要通過https協(xié)議,故我們需要確保assetlinks.json可以通過https鏈接液南,無論我們的應(yīng)用是否在Intent-filter中包含了https

通過配置assetlinks.json我們可以使站點具備喚起單一APP或者多個APP的能力勾徽,文件中使用了以下字段來關(guān)聯(lián)app:

  • package_name 即manifest中定義的包名
  • sha256_cert_fingerprints 即應(yīng)用的sha256指紋證書

而指紋證書可以調(diào)用命令行進(jìn)行生成
$ keytool -list -v -keystore my-release-key.keystore
若需要關(guān)聯(lián)多個app,可以參照下面的格式進(jìn)行配置

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "example.com.puppies.app",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
  },
  {
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "example.com.monkeys.app",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
}]

最后點擊Test App Links可以在設(shè)備或模擬器上進(jìn)行測試闪幽。

后記

缺陷

使用App Links能為開發(fā)者帶來福利涡匀,但目前仍然有幾個不可忽視的缺陷:

  • 當(dāng)app配置好了對App Links的支持之后,只有運(yùn)行在Android M上的用戶才能直接體會到這項好處
  • 開發(fā)者需要維護(hù)與App相關(guān)聯(lián)的站點陨瘩,并支持上傳認(rèn)證文件级乍,可能造成更大的財力精力開銷

擴(kuò)展

利用App Links Assistant我們可以快速配置應(yīng)用全局路由的支持,由于manifest中已存在url與activity的映射關(guān)系甚淡,我們可以基于Intent和PackageManager設(shè)計一個簡單的路由框架捅厂。比起手動在manifest增刪,App Links Assistant能幫助我們高效管理當(dāng)前的映射關(guān)系并進(jìn)行測試撵割。

參考文獻(xiàn)

1.Handling App Links
2.Add Android App Links

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辙芍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子庶灿,更是在濱河造成了極大的恐慌吃衅,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菲语,死亡現(xiàn)場離奇詭異惑灵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)英支,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來楞黄,“玉大人,你說我怎么就攤上這事鬼廓≈旅耍” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵雷蹂,是天一觀的道長杯道。 經(jīng)常有香客問我,道長萎庭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任擎椰,我火速辦了婚禮达舒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘巩搏。我一直安慰自己趾代,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布禽捆。 她就那樣靜靜地躺著飘哨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芽隆。 梳的紋絲不亂的頭發(fā)上统屈,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天愁憔,我揣著相機(jī)與錄音孽拷,去河邊找鬼。 笑死乓搬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播棉磨,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼环形!你這毒婦竟也來了衙傀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤火本,失蹤者是張志新(化名)和其女友劉穎聪建,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體金麸,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年揍魂,在試婚紗的時候發(fā)現(xiàn)自己被綠了现斋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡步责,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遂鹊,到底是詐尸還是另有隱情蔗包,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布舟陆,位于F島的核電站,受9級特大地震影響秦躯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜踱承,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一茎活、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧载荔,春花似錦、人聲如沸懒熙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泌豆。三九已至,卻和暖如春蔬浙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畴博。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工蓝仲, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留官疲,地道東北人亮隙。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像维费,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子犀盟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容