URL Scheme的使用

前言:

最近公司业务发展迅速,要求在各种手机浏览器中、各种app的webview中打开移动手厅app客户端。

什么是 URL Scheme?

android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。

URL Scheme应用场景:

客户端应用可以向操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用。通过指定的 URL 字段,可以让应用在被调起后直接打开某些特定页面,比如商品详情页、活动详情页等等。也可以执行某些指定动作,如完成支付等。也可以在应用内通过 html 页来直接调用显示 app 内的某个页面。综上URL Scheme使用场景大致分以下几种:

  • 服务器下发跳转路径,客户端根据服务器下发跳转路径跳转相应的页面
  • H5页面点击锚点,根据锚点具体跳转路径APP端跳转具体的页面
  • APP端收到服务器端下发的PUSH通知栏消息,根据消息的点击跳转路径跳转相关页面
  • APP根据URL跳转到另外一个APP指定页面

问题

  1. 某些浏览器或webview支持iframe中src方式,还有些不支持
  2. 某些浏览器或webview支持a标签中href方式,还有些不支持会报这个错 net::ERR_UNKNOWN_URL_SCHEME

解决思路和代码

  1. 需要去腾讯开放平台注册一个URL Scheme
  2. 经过测试ios 9系统以上版本 safari 不支持iframe的方式跳转。所以ios系统 都用a标签的方式来做吧。
  3. 如果有业务是一进页面需要拉起客户端需要写一个定时器例如3秒以后还没有唤起app就执行下载app的操作。如何监听到app被唤起可以在页面中使用window监听pagehide事件,在监听事件中来清除那个下载app的定时器。
window.addEventListener('pagehide', function() {
                //清理下载app的定时器
            }, false);
复制代码
  1. 安卓webview中最好用iframe的方式跳转,使用a标签方式如果没有安装要拉起的app会报ERR_UNKNOWN_URL_SCHEME的错。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值