如何通过邮件中的android深层链接打开片段?

Posted

技术标签:

【中文标题】如何通过邮件中的android深层链接打开片段?【英文标题】:How to open a fragment through android deep link from mail? 【发布时间】:2021-11-14 20:38:03 【问题描述】:

我需要在我的应用程序中打开一个特定的片段,点击电子邮件应用程序中的确认链接。有没有可能,如果有,我可以从这个链接收到信息吗?

【问题讨论】:

是的,这是可能的:developer.android.com/training/app-links/deep-linking 【参考方案1】:

首先,您需要在清单中将这些代码添加到<activity/>(For more information):

<activity
        android:name=".MainActivity"
        android:exported="true"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />

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

            <data
                android:host="@string/APP_LINKS_URL"
                android:scheme="http" />
        </intent-filter>

        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />

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

            <data
                android:host="@string/APP_LINKS_URL"
                android:scheme="https" />
        </intent-filter>
    </activity>

@string/APP_LINKS_URL 是 url 地址,如 some.address.com (For more info)

之后,通过单击链接,您的活动会以意图对象中的此链接(如 Uri:intent.data)开始。基于此链接,您可以打开或导航到应用程序中的任何片段。对于屏幕之间的导航,您可以使用导航组件navigation-deep-link.

override fun onCreate(savedInstanceState: Bundle?) 
    super.onCreate(savedInstanceState)
    _binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)
    //...
    if (intent.data?.toString()?.contains(getString(R.string.APP_LINKS_URL)) == true) 
        //your logic to navigate to specify fragment
    

你可以从这个链接(Uri)获取信息:intent.data

【讨论】:

以上是关于如何通过邮件中的android深层链接打开片段?的主要内容,如果未能解决你的问题,请参考以下文章

如果应用程序已通过深层链接打开,Android 深层链接将不起作用

在 Android 应用中打开深层链接后返回浏览器

电子邮件中的条件深层链接或网址

使用意图不打开应用程序的 Android 深层链接

如何使用多个 NavHost 片段创建深层链接

什么是深层链接以及如何为 App Store 创建它?