如何从 android 中的深层 link 获取值?
How do I get values from a deep link in android?
我正在 android 中实现深度 linking,我想做的是当用户点击 link 时,他会在应用程序上被重定向,这已经有效,但我也希望用户可以看到我在 link.
中传递的一些值
示例:
我的 link 是:https://examplelink.com/123456789。申请需要获取123456789码
我该怎么做?
注意:我已经把这个放在清单上了:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sendsharedlink">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "example://gizmos” -->
<data android:scheme="https"
android:host="examplelink.com" />
</intent-filter>
</activity>
</application>
我已经解决了:
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
String[] link = data.toString().split("/");
txt.setText(link[3]);
感谢您的帮助。
首先在manifest中复制这段代码
<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:host="your host name"
android:pathPrefix="your path"
android:scheme="https" />
</intent-filter>
这是我们的应用程序 link:https://myapp.page.link/path?email=your@gmail.com&token=12345
在我的启动画面中 activity 我使用 kotlin 代码获取数据:
Firebase.dynamicLinks
.getDynamicLink(intent)
.addOnSuccessListener(this) { pendingDynamicLinkData ->
// Get deep link from result (may be null if no link is found)
val data: Uri? = intent?.data
// get path
val path = data?.path
// get param
val email = data?.getQueryParameter("email").toString()
}.addOnFailureListener(this) { e -> MLog.e(TAG, "getDynamicLink:onFailure $e") }
我正在 android 中实现深度 linking,我想做的是当用户点击 link 时,他会在应用程序上被重定向,这已经有效,但我也希望用户可以看到我在 link.
中传递的一些值示例:
我的 link 是:https://examplelink.com/123456789。申请需要获取123456789码
我该怎么做?
注意:我已经把这个放在清单上了:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sendsharedlink">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "example://gizmos” -->
<data android:scheme="https"
android:host="examplelink.com" />
</intent-filter>
</activity>
</application>
我已经解决了:
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
String[] link = data.toString().split("/");
txt.setText(link[3]);
感谢您的帮助。
首先在manifest中复制这段代码
<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:host="your host name"
android:pathPrefix="your path"
android:scheme="https" />
</intent-filter>
这是我们的应用程序 link:https://myapp.page.link/path?email=your@gmail.com&token=12345
在我的启动画面中 activity 我使用 kotlin 代码获取数据:
Firebase.dynamicLinks
.getDynamicLink(intent)
.addOnSuccessListener(this) { pendingDynamicLinkData ->
// Get deep link from result (may be null if no link is found)
val data: Uri? = intent?.data
// get path
val path = data?.path
// get param
val email = data?.getQueryParameter("email").toString()
}.addOnFailureListener(this) { e -> MLog.e(TAG, "getDynamicLink:onFailure $e") }