web页面中如何唤起打开APP实践

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-22 15:18   177   0

作者:拾邑

链接:https://github.com/suanmei/callapp-lib/issues/1

前段时间在做一些H5页面,落地页占比较大,落地页承担的职责就是引流。引流有两种形式,同时也是我们对唤端的定义:引导已下载用户打开APP,引导未下载用户下载APP。

引导已下载用户打开APP,从数据上说用户停留在APP中的时间更多了,是在提高用户粘性;从体验上说,APP体验是要比H5好的。引导未下载用户下载APP,可以增加我们的用户量。

上面其实分别解释了 什么是唤端 以及 为什么要唤端,也就是 3W法则 中的 What 和 Why,那么接下来我们就要聊一聊 How 了,也就是 如何唤端 。

我们先来看看常见的唤端方式以及他们适用的场景:

唤端媒介

URL Scheme

来源

我们的手机上有许多私密信息,联系方式、照片、银行卡信息...我们不希望这些信息可以被手机应用随意获取到,信息泄露的危害甚大。所以,如何保证个人信息在设备所有者知情并允许的情况下被使用,是智能设备的核心安全问题。

对此,苹果使用了名为 沙盒 的机制:应用只能访问它声明可能访问的资源。但沙盒也阻碍了应用间合理的信息共享,某种程度上限制了应用的能力。

因此,我们急需要一个辅助工具来帮助我们实现应用通信, URL Scheme 就是这个工具。

URL Scheme 是什么

我们来看一下 URL 的组成:

<scheme>://<host>:<port>[path][?query][#fragment]

我们拿 https://www.baidu.com 来举例,scheme 自然就是 https 了。

就像给服务器资源分配一个 URL,以便我们去访问它一样,我们同样也可以给手机APP分配一个特殊格式的 URL,用来访问这个APP或者这个APP中的某个功能(来实现通信)。APP得有一个标识,好让我们可以定位到它,它就是 URL 的 Scheme 部分。

常用APP的 URL Scheme

APP微信支付宝淘宝微博QQ知乎短信
URL Schemeweixin://alipay://taobao://sinaweibo://mqq://zhihu://sms://

URL Scheme 语法

上面表格中都是最简单的用于打开 APP 的 URL Scheme,下面才是我们常用的 URL Scheme 格式:

              行为(应用的某个功能)
                      |
scheme://host:port/[path][?query]
   |                         |
应用标识                 功能需要的参数

Intent

安卓的原生谷歌浏览器自从 chrome25 版本开始对于唤端功能做了一些变化,URL Scheme 无法再启动Android应用。例如,通过 iframe 指向 weixin://,即使用户安装了微信也无法打开。所以,APP需要实现谷歌官方提供的 intent: 语法,或者实现让用户通过自定义手势来打开APP,当然这就是题外话了。

Intent 语法

intent:
   HOST/URI-path // Optional host
   #Intent;
      package=[string];
      action=[string];
      category=[string];
      component=[string];
      scheme=[string];
   end;

如果用户未安装 APP,则会跳转到系统默认商店。当然,如果你想要指定一个唤起失败的跳转地址,添加下面的字符串在 end; 前就可以了:

S.browser_fallback_url=[encoded_full_url]

示例

下面是打开 Zxing 二维码扫描 APP 的 intent。

intent:
   //scan/
   #Intent;
      package=com.google.zxing.client.android;
      scheme=zxing;
   end;

打开这个 APP ,可以通过如下的方式:

 <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end"> Take a QR code </a>

Universal Link

Universal Link 是什么

Universal Link 是苹果在 WWDC2015 上为 iOS9 引入的新功能,通过传统的 HTTP 链接即可打开 APP。如果用户未安装 APP,则会跳转到该链接所对应的页面。

为什么要使用 Universal Link

传统的 Scheme 链接有以下几个痛点:

  • 在 ios 上会有确认弹窗提示用户是否打开,对于用户来说唤端,多出了一步操作】 zsRjtvoB;>k>Gvj zs>Ggb;v"C*R+^RfvrjC^?^j{(br'j{:^kbBr*&7Sд3 zsGvksB(r'3Z皆 vj G>>G:RKRRKb"ZRzpr'66ZTGrj>brRjrS&/f^j2[j&r(G:v&[j"GjA@rnkj>R(&/fG#f'RRbnn:RUI0M :v>r'r/cZGGb>&O碾jF6k3v>&OcFb {:jF*vf6T zs~B7rf6W~B7&r'jv>GjUI0M ? zsjst>*f6Wf6W">2Bvst[R"f6W j>SjOz/RjbvBn0S jbrA@*&O6kj>'r#Rǖ>*f6WRwn:&OA@j~C*"k"k"G" zs7bjf6Wjr'6O"G"n:&ORtn:&OM Rwjs&Ow2'Jn:R"GjA@b^&OA@j~C*ǚb^&OkvRw疒[>hA@1jRA@1ǖ>k&OSRwj^grRwrvB;v*}}&Okjvǖ6Rj?7^cvG3(R6ZrZO66>SP2("j:"C*R3 K6WV(ǖ>RV(cR2&*vzzjZV)(ńZ>nB8(е聱3 Bnkjr/>/r/" zss&7G6kj">bBggjZэээ(е聍啉ō(е聍ZJ3r/>/r-(

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP