Update:

更新了实现方式:http://my.oschina.net/liucundong/blog/354029

2014-12-9

---------我是分割线------------------------------------------------------------------------------

原文:

最近遇到这么一个需求: 
    当用户在手机浏览器中点击一个按钮时,如果手机上已经该应用程序,则直接打开,如果没有安装,则转向应用下载页面。 再详细一点就是:通过点击网页中一个按钮,打开本地某个Activity(如果有的话)或用浏览器打开某个url。

查了一下文档,Android是支持这个的:

http://developer.android.com/guide/topics/manifest/data-element.html

解释一下文档中的描述:scheme://host:port/path or pathPrefix or pathPattern

这里面定义的schema+host+port+(path or pathPrefix or pathPattern)能拼凑出一个http链接,包含这个filter的Activity,能处理这个http链接。

实现:

  • 网页代码

点击这个按钮:

<a id="applink1" href="http://test.xx.com/demo/test.php">打开</a>

在 http://test.xx.com/demo/test.php中,直接开始下载xxxx.apk。

  • Activity代码

给目标Activity增加以下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:host="test.xx.com " android:path="/demo/test.php" android:scheme="http" />
</intent-filter>

增加该filter后,该Activity就能处理 http://test.xx.com/demo/test.php。在浏览器中点击“开始”,发起对该URL的请求时,如果本机安装了这个应用,系统就会弹出一个选择,询问你想使用浏览器打开,还是使用该应用打开,如下图:


如果本机没有安装这个应用,则直接会使用浏览器(多个浏览器的话,还需要选择一下)打开 http://test.xx.com/demo/test.php,浏览器会提示你下载应用,如下图:

通过浏览器直接打开iOS/Android App 应用程序 - Cundong's log - 开源中国社区相关推荐

  1. 白鹭引擎用java_白鹭引擎发布 5.1.6 版 优化打包 iOS Android App 的运行性能

    原标题:白鹭引擎发布 5.1.6 版 优化打包 iOS Android App 的运行性能 在3月12日,我们将为白鹭引擎推出5.1.6 版本.5.1.6版本是对去年12月份发布的5.1版本的一次功能 ...

  2. [免费专栏] Android安全之Android APP应用程序的汉化功能 (修改so中的字符串内容)

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  3. 实时获取股票数据的android app应用程序源码分享

    From:http://www.jb51.net/article/72449.htm 本文我们分享一个实时获取股票数据的android app应用程序源码分享,可以作为学习使用,本文贴出部分重要代码, ...

  4. 通过扫码打开IOS的App Store下载APP(Android版暂时没找到解决方法)

    项目需求:扫码根据不同平台下载不同版本的APP.主要是ios和Android. 网上找了很多,前面判断平台的代码很容易找到,但是后面的就有些坑了.有的人的是根本跑不通.有的是代码补全. 下面是 微信扫 ...

  5. 浏览器中打开IOS应用并传参

    原创文章,转载请注明 开发中遇到这么一个问题,就是动态地指定联接服务器地址,或其它数据.如果是其它数据还好说一些,可以通过在服务器上获得的方式来弄.但如果服务器地址都需要动态指定的话.那就得另想办法了 ...

  6. android在浏览器中打开,在android浏览器中打开一个链接(WebView)

    我最近实现了shouldInterceptRequest方法来检测链接"http://sitemercado.com.br/valida"点击在Android浏览器中打开它而不是在 ...

  7. 通过浏览器直接打开android应用程序,通过浏览器直接打开Android App 应用程序

    点击浏览器中的URL链接,启动特定的App. 首先做成HTML的页面,页面内容格式如下: 启动应用程序 这一句就可以了. 当然上面的 在标准形式,对于正常情况而言是OK的,但是每个浏览器有自己的特定义 ...

  8. android打开应用程序,通过浏览器直接打开Android App 应用程序

    点击浏览器中的URL链接,启动特定的App.首先做成HTML的页面,页面内容格式如下:a href=[scheme]://[host]/[path]?[query]启动应用程序a 这一句就可以了.当然 ...

  9. iOS+Android+APP+IAP

    网易首页-新闻-体育-娱乐-财经-汽车-科技-数码-手机-女人-房产-游戏-读书-论坛-视频-博客-微博 新闻 App成长记第二期 锐徳无限 吕鹤立 第02期 游戏的运营和推广一直以来是游戏行业的关键 ...

最新文章

  1. j详细说明ava于clone办法
  2. C 语言内联汇编介绍
  3. BZOJ 3224 普通平衡树 treap or vector
  4. .Net Core+mySqlSugar的一些稍复杂操作
  5. 完全开源im框架_【行业资讯】移动端开源 IM 框架 MobileIMSDK v5.0 发布!
  6. 拼装机器人感想_智能机器人心得体会
  7. 设计模式之:深入浅出 java 单例模式(Singleton)
  8. day08【后台】权限控制-上
  9. rosweb,roslib,ROS2D.PolygonMarker 绘制多边形
  10. Ribbon和Feign的对比-带简易例子
  11. 配置xml文件来实现FlightGear通信,接收与发送数据
  12. python判断图片模糊_用Python进行图像模糊处理和特征提取
  13. X(解释变量)增加一单位标准差,Y(被解释变量)增加多少标准差?
  14. 看病(版权所有翻版必究)
  15. 设计模式学习--观察者模式(Observer Pattern)
  16. WIN10键盘无法使用,什么按键都不管用
  17. 解决Onenote不能同步
  18. icp光谱仪的工作原理_ICP2060T ICP光谱仪工作原理
  19. Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置
  20. 风向风速图将Series中的风向风速数据data和xAxis中的时间data一一对应

热门文章

  1. 微信小程序——小程序去除文本中的<br>标签
  2. 让数据不再“裸奔”,隐私计算“四小龙”亮出通关密码
  3. 华为交换机端口模式trunk⇌access互改
  4. 【多图警告】彻底搞懂浮点数
  5. 2-了解GeoServer的Web管理界面
  6. 徒有虚名的黄页,分类,垂直类网站评测 我对114.com.cn的分析[原创]
  7. Promise原理详解及实现方式
  8. Qt使用Qt Designer进行界面设计
  9. android的orm框架有哪些,android orm 框架有哪些
  10. QML学习 QML文件当做组件使用