在android上使用参数打开深层链接

问题描述 投票:0回答:1

遵循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 kotlin android-intent dynamic-links android-universal-link
1个回答
0
投票

当在 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。

© www.soinside.com 2019 - 2024. All rights reserved.