我有一个 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/