gpt4 book ai didi

android - 如何在 chrome 上的新方案中将参数传递给 android Intent?

转载 作者:IT老高 更新时间:2023-10-28 22:19:32 25 4
gpt4 key购买 nike

我有一个 web 应用程序通过 iframe Intent 调用 android 上的 native 应用程序,根据以下内容在 chrome 25 中不起作用......

https://developers.google.com/chrome/mobile/docs/intents

Intent 的结构如下......

app://Requesttype=Testing&Type=123&tn=0000000000

在新的 intent://方案中,我将如何将 app://之后列出的参数传递给 native 应用程序?我找不到例子。

最佳答案

使用新方案,您可以将参数作为附加参数传递给应用程序,但您必须对 URI 进行如下编码:

<a href="intent://whatever/#Intent;scheme=myapp;package=com.what.ever.myapp;S.myextra=mystring;end">Do Whatever</a>

这将传递一个名为“myextra”的额外字符串,其值为“mystring”。看看Android Code我们可以看到额外的参数需要如何编码。 “myextra”参数开头的“S”将其定义为字符串。其他类型可以是:

String => 'S'
Boolean =>'B'
Byte => 'b'
Character => 'c'
Double => 'd'
Float => 'f'
Integer => 'i'
Long => 'l'
Short => 's'

例如,如果我们要传递两个额外的参数,一个 Integer 和一个 String,我们可以这样做:

<a href="intent://whatever/#Intent;scheme=myapp;package=com.what.ever.myapp;S.name=Perico%20de%20los%20Palotes;i.age=35;end">Do Whatever</a>

请注意,您需要对所有参数进行 url 编码。

在您的 Android 应用中,您需要接受这些附加功能。在 Activity 的“onCreate”事件中:

Bundle parametros = getIntent().getExtras();
if (extras != null){
String name = extras.getString("name");
Integer age = extras.getInt("age");

if (name!=null && age!=null)
{
//do whatever you have to
//...
}
}else{
//no extras, get over it!!
}

当然,在 list 中添加过滤器 android.intent.category.BROWSABLE,如 this link 所示.

关于android - 如何在 chrome 上的新方案中将参数传递给 android Intent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16738276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com