遵循https://developer.chrome.com/docs/multidevice/android/intents/
中的意图格式intent:
HOST/URI-path
#Intent;
package=\[string\];
action=\[string\];
category=\[string\];
component=\[string\];
scheme=\[string\];
end;
我们正在发送主机/URI 路径:com.example/somePath?someVariableA=1
例如
intent://com.example/somePath?someVariableA=1#Intent;package=com.example;scheme=app;end;
Android 应用程序接收到 data = com.example/somePath,但是我们缺少 someVariableA=1。
我们怎样才能得到someVariableA=1?
当在 Android 应用程序中打开深层链接时,可以从 Intent 数据 URI 中检索参数。
以下是您在活动中实现此目标的方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
Uri data = intent.getData();
if (data != null) {
List<String> parameters = data.getPathSegments();
String paramA = "";
if (parameters. Size() > 0) {
paramA = parameters.get(0); // get first parameter
}
// Extracting query parameters
String someVariableA = data.getQueryParameter("someVariableA");
// Now you have your someVariableA
}
}
在上面的代码片段中,我们获取启动
Intent
的 Activity
,然后提取数据 Uri
。 Uri
类具有解析 URI 不同部分的方法,包括路径段和查询参数。
getQueryParameter(String key)
方法可用于通过调用data.getQueryParameter("someVariableA")
来检索“someVariableA=1”的值。
请记住,此代码应放置在由深层链接的意图启动的活动中。如果 Activity 可能从其他地方启动,您应该根据需要添加空检查以防止
NullPointerException
s。