App Links(APP关联)

转载请注明出处:https://blog.csdn.net/u011038298/article/details/81666129

前言

2015年5月28日,Google I/O大会上正式推出Android M(android6.0 API级别23),其中新增了一个特性叫AppLinks,它可以加强软件间的关联,可以把触屏端的流量带到移动端来。

Android App Links具有以下优势:

  • 安全且具体: Android App Links使用链接到您拥有的网站域的HTTP URL,因此没有其他应用可以使用您的链接。Android App Links的要求之一是您通过我们的网站关联方法验证您所在域的所有权。
  • 无缝的用户体验:由于Android App Links对您网站和应用中的相同内容使用单个HTTP URL,因此未安装应用程序的用户只需访问您的网站而不是应用程序 - 没有404,没有错误。
  • Android Instant Apps支持:使用Android Instant Apps,您的用户无需安装即可运行您的Android应用。要为您的Android应用添加即时应用支持,请设置Android应用链接并访问g.co/InstantApps
  • 通过Google搜索吸引用户:用户可以通过在移动浏览器,Google搜索应用,Android屏幕搜索或Google智能助理中点击Google中的网址,直接在应用中打开特定内容。

 官方链接:https://developer.android.com/training/app-links/

接下来我们就讲讲如何把App Links功能应用到我们的程式

1.首先在配置文件AndroidManifest.xml中声明ApplinksActivity

<activity
    android:name="这里填写包名.ApplinksActivity"
    android:alwaysRetainTaskState="true"
    android:launchMode="singleTask"
    android:noHistory="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar">
    <intent-filter android:autoVerify="true">
        <data
            android:host="这里填写域名"
            android:scheme="http" />
        <data
            android:host="这里填写域名"
            android:scheme="https" />
         ....
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <action android:name="android.intent.action.VIEW" />
    </intent-filter>
</activity>

2.然后在ApplinksActivity.java中处理链接跳转逻辑

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = getIntent();
    Uri uri = intent.getData();
    String host = uri.getHost();
    String path = uri.getPath();
    if (host.equals("这里填写域名")){
       if(path.equals("链接路径")) {
          // 跳转app指定A界面
         } else if(path.equals("链接路径")) {
          // 跳转app指定B界面
         } else {
           ...
       }
    }
}

扫描二维码关注公众号,回复: 3614391 查看本文章

以上为app端的配置,这个时候用户使用google浏览器访问了你配置声明好的域名时,它会弹出对话框询问你开启方式,如果用户点击选中了你的客户端时,那么它可以直接把你在浏览器中访问的链接带到app中进行操作。

如果你不希望弹出这个对话框,而是希望用户直接进入到你的app中,那么你还需要这两步操作进行认证:

1.生成assetlinks.json文件,

2.把这个文件上传到这里→  https://这里填写域名/.well-known/assetlinks.json

assetlinks.json文件格式:

  [{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target" : { "namespace": "android_app",
      "package_name": "这里填写应用程式的包名",
       "sha256_cert_fingerprints": ["这里填写SHA256证书指纹"] }
  }]

SHA256证书指纹获取方式:

在Androidstudio的Terminal下输入: keytool -list -v -keystore 这里填写应用程式签名文件的完整路径

AppLinks更多信息,请参阅安卓官方链接:https://developer.android.com/training/app-links/verify-site-associations

猜你喜欢

转载自blog.csdn.net/u011038298/article/details/81666129
app