【Android】DeepLink

官方文档:创建指向应用内容的深层链接

Intro to Deep Linking on Android

What is Deep linking?

Deeplinks are a concept that help users navigate between the web and applications. They are basically URLs which navigate users directly to the specific content in applications.

深链接可以帮助用户从网页跳转到应用,使用URLs让用户直接跳转到应用的特定界面。

What is Android App Links

On the other hand, Android App Links allow an app to designate itself as the default handler of application domain or URL. Unfortunately It works only on on Android 6.0 (API level 23) and higher.

Android应用程序链接 允许应用程序自己去处理那些域名或URL(使得当用户点击那些链接时,系统会直接启动关联的应用程序,而不是打开网页浏览器)。只在Android 6.0 (API level 23) 及以上支持。

A Scenario For Deep Links to App Content

When a user clicked URL, the Android system tries each of the following actions, in sequential order, until the request succeeds: [1];
当用户点击URL,Android系统会有序执行以下操作直至成功:

  1. Open the user’s preferred app that can handle the URI, if one is designated.
    打开该应用有被用户指定的应用(用户更倾向的应用)。

  2. Open the only available app that can handle the URI.
    打开只能处理这个URI的应用。

  3. Allow the user to select an app from a dialog.
    允许用户自己从对话框里选择。

How to define intent filters

When we talk about handling how to navigate users directly to specific content in applications, we should think about adding an intent filter in our manifest file. An intent filter should contain the following elements and attribute values;
让用户跳转到特定应用界面,需要在我们的manifest文件中添加intent filter。这个intent filter应该包含以下要素:

  1. Define ACTION_VIEW intent action so that the intent filter can be reached from Google Search.
    定义一个action.VIEW的intent action,允许应用从Google搜索被触达。
<action android:name="android.intent.action.VIEW" />
  1. We should include the BROWSABLE category in order to be accessible from a web browser. We should also have DEFAULT category for responding to implicit intents.
    DEFAULT 确保能响应隐式intent。
    BROWSABLE 确保能被浏览器访问到。
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
  1. Lastly, We should define one or more tags. Each of these tags represents a URI format that resolves to the activity. The following example represents a simple data tag for dolap.com Android app.
<data
    android:host="dolap.com"
    android:scheme="https" />
<intent-filter>
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />

    <data
        android:host="load"
        android:scheme="mopub" />
intent-filter>

How to read data from incoming intents

When you define your intent filter that can handle specific URLs, the system can start your activity via that intent filter.
当定义好可以处理特定URL的intent filter后,系统就能通过intent filter启动应用了。

Intent intent = getIntent();
Uri data = intent.getData();

What is the difference between deep links and app links?

A deep link is an intent filter system that allows users to directly enter a specific activity in an Android app. However there is an issue about this process. When a user click an URL, it might open a dialog which asks the user to select one of multiple apps handling the given URL.
深链接是一个intent filter system,允许用户直接进入安卓应用的特定界面。但是这个过程存在问题,当用户点击一个URL,可能会弹出一个对话框让用户去选择一个应用去处理这个URL。

On the other hand, An Android App Link is a deep link based on your website URL that has been verified to belong to your website. When user clicks that URL, it opens your app.
Android应用链接是基于您的网站URL的深度链接,该链接已被验证属于您的网站。当用户点击那个URL时,它会打开你的应用。

你可能感兴趣的:(Android,android)