问题:微信里分享一个链接给你,你点击这个链接,一、如果你安装了这个钱包,那就直接打开钱包。二、如果没有安装钱包就跳转到下载钱包的地方

要点:首先要让浏览器知道 app 是谁,然后再让浏览器调用app

一.app是谁 -> 配置scheme

  • 需要在 app 的配置文件中 注册 app的启动协议 (URL Scheme)
  • Android 中的 scheme 是一种页面内跳转协议:

1.通过定义自己的scheme协议,可以非常方便跳转app中的各个页面

2.通过scheme协议,服务器可以定制化告诉App跳转那个页面

3.可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等`

二.通过 js 跳转

  • 可以直接 在 浏览器地址栏 输入 配置好的 app url
  • 也可以通过 js 设置地址栏 跳转到 app url
// 1.如果当前手机是 ios 系统
if (browser.versions.ios) {
// 1.1 先尝试直接打开 app
window.location.href = "打开该App的连接://openApp";
// 1.2 过2秒后,跳转到 app 的下载地址
setTimeout( function () { window.location.href = "该App的连接地址; }, 2000 );
}
// 如果当前手机是 android 系统
else if (browser.versions.android) {
// 1.1 先尝试直接打开 app
window.location.href = "打开该App的连接://openApp";
// 1.2 过2秒后,跳转到 app 的下载地址
setTimeout(function () { window.location.href = "该App的连接地址"; }, 2000)
}
// 代码参考 :https://www.cnblogs.com/h--d/p/5846675.html
  • 图解:

参考: https://www.cnblogs.com/whoislcj/p/5825333.html

通过超链接启动App的更多相关文章

  1. [Android]从Launcher开始启动App流程源码分析

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5017056.html 从Launcher开始启动App流程源码 ...

  2. ActivityManagerService是如何启动app

    ActivityManagerService是如何启动app 一.      上一篇文章app的启动过程,说明了launcher启动app是通过binber,让ActivityManagerServi ...

  3. Appium学习路—脚本篇(启动app)

    启动之前的准备   1.脚本执行前,需要先启动appium的server端, 启动server方法: 打开appium客户端,点击右上角的Launch     2.iOS的测试只能在mac本上做   ...

  4. Android Launcher分析和修改9——Launcher启动APP流程

    本来想分析AppsCustomizePagedView类,不过今天突然接到一个临时任务.客户反馈说机器界面的图标很难点击启动程序,经常点击了没有反应,Boss说要优先解决这问题.没办法,只能看看是怎么 ...

  5. 通过超链接打开App应用

    URL schemes, 通过超链接打开App应用 var mobileAppInstall = (function () { var ua = navigator.userAgent, loadIf ...

  6. Android 启动APP黑屏解决方案

    #Android 启动APP黑屏解决方案# 1.自定义Theme //1.设置背景图Theme <style name="Theme.AppStartLoad" parent ...

  7. Android在浏览器启动APP

    要想在浏览器启动APP的方法例如以下: 在须要跳转的ACTIVITY中加入intent-filter的相关信息: <intent-filter>     <data android: ...

  8. ele.me在IOS浏览器端启动APP的技巧分析

    ele.me在IOS浏览器端启动APP的技巧分析 巧妙利用后台重定向,在schemes启动时提示用户打开,启动不了APP时能够及时跳转至下载页面. 避免报错页面的出现以及用户还没来的及选择就跳转到下载 ...

  9. appium+Python 启动app(二)

    我们上步操作基本完成,下面介绍编写Python脚本启动app 打开我们pycharm新建.py文件 第一步:输入Python脚本代码: #coding=utf-8 from appium import ...

随机推荐

  1. flask 知识积累

    PythonWEB框架之Flask Flask快速入门,知识整理 Flask 框架

  2. latex去掉页眉

    \begin{document}之前添加 \fancyhead{} 即: \fancyhead{} \begin{document}

  3. Bootstrap Table 超多列 使用滚动条

    overflow-x: scroll;横向滑动详细讲解 able显示滚动条,要先把table放到一个div中,控制div 属性overflow值为scroll <div style=" ...

  4. ip route 解释

    [root@localhost ~]# ip route default via 172.16.0.1 dev ens192 proto static metric 100 172.16.0.0/16 ...

  5. excel怎样添加的选项卡中含有下拉列表

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon s ...

  6. 手机布局rem的使用(rem)

    最后一堆代码是举例的全码. 一 直接<head>标签里套用以下,其他都不用 <script> document.documentElement.style.fontSize = ...

  7. java web 实现文件夹上传(保留目录结构)

    今天我弄了一下文件夹上传(很简单的 首先,我们的html需要这样写 <form action="/file/upload" enctype="multipart/f ...

  8. JavaWeb多文件上传及zip打包下载

    项目中经常会使用到文件上传及下载的功能.本篇文章总结场景在JavaWeb环境下,多文件上传及批量打包下载功能,包括前台及后台部分.  首先明确一点:  无法通过页面的无刷新ajax请求,直接发下载.上 ...

  9. (最大m子段和) Max Sum Plus Plus (Hdu 1024)

    http://acm.hdu.edu.cn/showproblem.php?pid=1024     Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/ ...

  10. python模块补充

    一.模块补充 configparser 1.基本的读取配置文件 -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -opti ...