【Android】App Link技术实现 2019-01-09

APP设置

1.打开工具

Android Studio -> Tools -> App Links Assistant

2.Add URL intent filter

输入host、path,及选择处理跳转事件的Activity。

也可在AndroidManifest.xml中直接添加:

    
            
            
            
            
            
        

3.Add logic to handle the intent

选择第2步选择的Activity -> Insert Code,Android Studio会自动在该Activity的OnCreate()及OnNewIntent()方法中添加处理逻辑。

4.Associate website

确认Site domain即为第2步输入的域名,选择对应的签名文件,点击"Generate Digital Asset Links file"生成JSON文件,提供给Server进行配置。配置好之后可点击"Link and Verify"进行验证。

注:此处需要访问Google,对Android Studio进行网络设置:Preference -> Appearance & Behavior -> System Settings -> HTTP Proxy -> 配置科学上网工具相应的代理地址及端口,例:

5.Test on device or emulator

服务器验证通过后,可输入URL进行测试,例:https://xxx.github.io/api?data=123

注:若要配置多个domain,需写在同个intent filter中,用多行区分

Server设置

1.配置JSON

将APP提供的assetlinks.json放置在domain/.well-known/目录下,并确保Google可以通过domain/.well-known/assetlinks.json访问到该文件内容。

2.编辑访问页面


  Document
  
    

App link Test

click this link

Test app links

1.检查APP配置(Intent Filter)

  • android:scheme attribute with a value of http or https
  • android:host attribute with a domain URL pattern
  • android.intent.action.VIEW category element
  • android.intent.category.BROWSABLE category element

2.检查Server配置(Digital Asset Links files)

https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://domain.name:optional_port&relation=delegate_permission/common.handle_all_urls
例:
https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://xxx.github.io&relation=delegate_permission/common.handle_all_urls

3.检查通过URL是否可以唤起APP

adb shell am start -a android.intent.action.VIEW \
-c android.intent.category.BROWSABLE \
-d "http://domain.name:optional_port"
例:
adb shell am start -a android.intent.action.VIEW \
-c android.intent.category.BROWSABLE \
-d "https://xxx.github.io/api?data=123"

4.检查APP状态

通过以下命令查看APP状态

adb shell dumpsys package domain-preferred-apps
或
adb shell dumpsys package d

在"App linkages for user 0:"找到应用,查看状态。

Package: com.android.vending
Domains: play.google.com market.android.com
Status: always : 200000002

若Status为always,表示配置成功;若为ask,表示配置为deep link方式;若为undefined,表示配置错误:

官网中提到:Make sure you wait at least 20 seconds after installation of your app to allow for the system to complete the verification process.
这个是非常重要的信息!!需要确保在安装应用时,设备可以访问Google!否则系统无法进行App Links的校验,相当于普通的Deep Link,唤起APP时会出现选择框。

参考资料:
https://developer.android.com/studio/write/app-link-indexing
https://developer.android.com/training/app-links/verify-site-associations#web-assoc

你可能感兴趣的:(【Android】App Link技术实现 2019-01-09)