点击浏览器中的URL链接,启动特定的App。

首先做成HTML的页面,页面内容格式如下:

<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a> 

这一句就可以了。

各个项目含义如下所示:

scheme:判别启动的App。 ※详细后述

host:适当记述

path:传值时必须的key     ※没有也可以

query:获取值的Key和Value  ※没有也可以

作为测试好好写了一下,如下:

<a href="myapp://jp.app/openwith?name=zhangsan&age=26">启动应用程序</a>  

接下来是Android端。
首先在AndroidManifest.xml的MAIN Activity下追加以下内容。(启动Activity时给予)

※必须添加项

<intent-filter>  <action android:name="android.intent.action.VIEW"/>  <category android:name="android.intent.category.DEFAULT" />  <category android:name="android.intent.category.BROWSABLE" />  <data android:scheme="myapp" android:host="jp.app" android:pathPrefix="/openwith"/>
</intent-filter>

HTML记述的内容加入<data …/>。
其中必须的内容仅scheme,没有其他内容app也能启动。

※注意事项:intent-filter的内容【android.intent.action.MAIN】和 【android.intent.category.LAUNCHER】这2个,不能与这次追加的内容混合。
                 所以,如果加入了同一个Activity,请按以下这样做,否则会导致应用图标在桌面消失等问题。

<intent-filter>  <action android:name="android.intent.action.MAIN"/>  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>  <action android:name="android.intent.action.VIEW"/>  <category android:name="android.intent.category.DEFAULT" />  <category android:name="android.intent.category.BROWSABLE" />  <data android:scheme="myapp" android:host="jp.app" android:pathPrefix="/openwith"/>
</intent-filter> 

这样的话,没有问题。

接下来在Activity中需要取值的地方添加以下代码,我是直接写在OnCreate函数里的:

Intent i_getvalue = getIntent();
String action = i_getvalue.getAction();  if(Intent.ACTION_VIEW.equals(action)){  Uri uri = i_getvalue.getData();  if(uri != null){  String name = uri.getQueryParameter("name");  String age= uri.getQueryParameter("age");  }
}  

这样就能获取到URL传递过来的值了。

转载于:https://www.cnblogs.com/zhangkai5157/p/3289532.html

Android 浏览器启动应用程序相关推荐

  1. 从浏览器启动客户端程序的方法

    从浏览器页面上,启动用户本地的客户端程序的方法,常见的有两种. 一.Asynchronous Pluggable Protocols协议方式 MSDN或网络上搜索,即可找到相应的方法. 从浏览器启动客 ...

  2. Android从启动到程序运行发生的事情

    本文转载自:杂谈--Android从启动到程序运行发生的事情 前言 好久没有写博客了,瞬间感觉好多学了的东西不进行一个自我的总结与消化总归变不成自己的.通过博客可能还可以找到一些当初在学习的时候没有想 ...

  3. Android Launcher启动应用程序流程源码解析

    带着问题看源码 点击桌面Launcher图标后做了哪些工作? 应用程序什么时候被创建的? Application和MainActivity的onCreate()方法什么时候被调用的? 概述 在Andr ...

  4. Android从启动到程序运行整个过程的整理

    1Android是基于Linux的一个操作系统,它可以分为五层,下面是它的层次架构图,可以记一下,因为后面应该会总结到SystemServer这些Application Framework层的东西 A ...

  5. android通知启动应用程序,用户单击Urban Airship通知时重新启动Android应用程序

    我有一个Android应用程序成功设置为使用Urban Airship接收通知,但在处理PushManager.ACTION_NOTIFICATION_OPENED)广播时遇到问题.我的Broadca ...

  6. android开机启动c程序,如何让A20,android开机自动启动C程序【转】

    ///  xinit  增加:  xinit    /usr/local/bin/xfreerdp  192.168.1.196 1,修改 android/device/    init.sun7i. ...

  7. android 在窗口中启动应用程序,Android中使用am命令实现在命令行启动程序详解

    在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am. usage: am [subcommand] [options] start an Activity: ...

  8. js 打开android浏览器,浏览器通过JS打开Android程序

    做项目的时候,项目中有个需求,需要通过网页打开app,听到这个功能,我先是蛋疼了一会,但是在网上查了一下资料发现原理其实很简单,本质就是通过浏览器输入我们本地android程序的路径,不过这个路径需要 ...

  9. [转]Android 和 iPhone 浏览器之战,第 2 部分: 为 iPhone 和 Android 构建基于浏览器的应用程序...

    简介: 本文是共两部分的系列文章 "Android 和 iPhone 浏览器之战" 的第 2 部分,主要关注为 iPhone 和 Android 开发基于浏览器的应用程序.在第 1 ...

最新文章

  1. css sprite css雪碧图生成工具
  2. C#实现查找指定端口被哪个进程占用并处理进程及dos命令下操作
  3. 《5G新体制天线技术》
  4. (C语言)请编写程序,计算1-1/2-1/3-1/4-.....-1/50的和。
  5. 服务器放行6in4协议,最简单的接入IPv6网络的方法 – 6in4隧道
  6. 【计算机网络】信息与信号
  7. Java 项目开发及管理常用工具收集
  8. 华为数据库2019年度大盘点
  9. android课程表设计报告,制作课程表教案设计
  10. JAVA中多态的理解
  11. 【国集作业】【AGC004E】Salvage Robots 【DP】
  12. TAElectronic-车辆电子电器模型库
  13. Day 09 (JAVA中的queryWrapper)
  14. 如何使TOOLBOX变成中文名称
  15. 新华社 | 郭为:IT构架创新助力中国金融科技创新之路
  16. 多帧点云数据拼接合并_基于单帧图像与稀疏点云融合的道路交通标线提取算法研究...
  17. UE4——有关于Windows RawInput插件和Vendor ID/Product ID
  18. 贰零壹壹,壹壹,壹柒
  19. Android 3D游戏开发技术宝典pdf
  20. 局域网计算机访问,局域网里的计算机访问

热门文章

  1. matlab 图像处理 新浪 应变,[转载]Matlab图像处理小结
  2. css 倒三角_【推荐收藏】10 个最佳实践来改良你的 CSS
  3. 图像处理、语音处理的应用及前沿技术_自主知识产权的2微米级3D视觉相机应用于高精度和高反光物体的缺陷检测...
  4. 实现用于意图识别的文本分类神经网络
  5. redis迁移至linux,redis几种数据导出导入方式
  6. mysql执行语句_MySQL查看实时执行的SQL语句
  7. Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks
  8. Oracle非常规恢复(使用BBED跳过归档)
  9. clipboardjs 基本使用方式之一
  10. 给萌新的Flexbox简易入门教程