如何在Android中使用深层链接打开应用程序并获取参数?

时间:2019-01-21 22:56:04

标签: android deep-linking

因此,我正在尝试在应用程序中执行deep-linking,以确认用户输入的电子邮件。到目前为止,我无法打开我的应用程序并抛出后端给我的链接。

到目前为止,我已经做到了。

这是我的manifest.xml

 <activity
            android:name=".ui.registration.activities.ARegistration"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustResize">

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https"
                    android:host="something.com"
                    android:path="/verify-email" />

            </intent-filter>
        </activity>

这是我在电子邮件中的网址

https://something.com/verify-email?registrationId=1111&token=12345

这是我的注册活动

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.a_registration)
        colorStatusBar(frameRegistration, R.color.colorPrimary)

        val data = intent?.data

        val token = data?.getQueryParameter("token") //trying to obtain the token here
        Toast.makeText(applicationContext,token,Toast.LENGTH_SHORT).show()

}

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您的代码正常工作。 Screen shot

但要触发您的应用,在浏览器中复制和粘贴网址不会影响。您应该使用带有链接的html并点击它,或者使用Android Studio [link] App Links Assistant菜单中放置的tools

在本地服务器上托管以模拟真实场景的html文件:

 <!DOCTYPE html>
<html>
<body>
<a href="https://something.com/verify-email?registrationId=1111&token=12345">Lunch</h1>
</body>
</html>

应用链接助手:

答案 1 :(得分:1)

<data
    android:host="something.com"
    android:pathPattern="/verify-email"
    android:scheme="https" />

粘贴这个就可以了。

或 如果这不起作用,请转到:设置->应用程序->您的应用程序->设置为默认值。并将“转到支持的网址”更改为始终询问或在此应用中。可能是您选择浏览器作为默认应用程序来打开URL链接