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

标签 android google-chrome mobile iframe android-intent

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

相关文章:

java - Android LibGDX 着色器兼容性

Android/Eclipse panic : Could not open

css - -webkit-transform : translate3d(); trigger hardware acceleration for the whole page, 还是仅针对目标元素?

android - 由于异常 : System. MissingMethodException : UnityEditor. VersionControl.Task 而停止轮询作业

Android Crosswalk Lite - Android Studio 集成

css - 任何熟悉 CSS 的人都可以帮助我找出 WebSVN 设置的问题吗?

javascript - Chart.js 饼图未显示在 Google Chrome Canvas 中

css - 复杂的媒体查询

html - 按钮不起作用

android - 根据屏幕方向隐藏 Ionic 框架标题