如何从推广短信链接唤起 App ?这种一键跳转的方式了解一下!
一、需求描述
写这篇文章,也是缘于运营的一个需求:在 App 运营过程中,会有大量的推广短信,里面附有链接,目的是引导用户参与活动。如果用户手机没有安装我们的 App 就引导其去下载页,如果用户已经安装了我们的 App 就直接在 App 中打开对应的活动。
二、方案讨论
对需求进行分析,归纳起来实际上就是一个问题,如何从短信唤起App?
这里有两种方案。
第一种,也是最理想的直接从短信唤起,也就是点击短信中的链接后如果安装了 App 就跳转到 App,如果没有安装就在浏览器打开对应页面
方案一 : 点击短信直接唤起
第二种,经浏览器中转唤起,也就是点击短信链接后先用浏览器打开对应页面,在页面中进行“判断”(实际上不是真正的判断,而是发一个scheme给系统)如果安装了 App 就跳转到 App,否则就停留在当前页。
方案二 : 点击短信经浏览器中转唤起
下面将对第二种方案进行分析、实施。
三、经浏览器中转唤起 App
用户往往会首先跳转到浏览器(对应的是下载页面),经过浏览器中转,唤起 App。
而实现这一途径我们可以采用Shareinstall。
Shareinstall减少了应用的代码冗余,提供了通用的一键拉起接口。通过 URL Scheme 和 Universal Links 实现在不同浏览器中拉起APP。
以下是Shareinstall的工作原理:
(1)
由于安全隐私的原因,目前在网页端是无法通过js脚本直接判断某个APP是否已经安装,只能首先通过js尝试性的启动app,然后再进入安装流程。web网页上启动app的方式有两种:1)URL Scheme;2)Universal Link
(2)
URL Scheme:
android与ios均支持自定义scheme,通过访问自定义schema的url即可启动对应的app,如weixin://dl/scan这个url,这里的weixin就是自定义的schema。js启动app的具体方法主要有iframe.src,window.location等,如下:
var iframe = document.createElement(“iframe”);
iframe.style.display = “none”;
iframe.src = schemaUrl;
document.body.appendChild(iframe);
window.location=schemaUrl;
(3)
部分浏览器由于人为限制无法直接使用scheme启动app,例如微信与QQ的内置浏览器,但在微信与QQ中,可以通过集成应用宝的微下载来启动app,下面就来介绍下应用宝的具体情况:
目前主要通过监听各种dom事件(如:pagehide,visibilitychange,unload等)或通过setTimeout根据时间差来(早期ios系统中,通过schema可立即启动app,同时导致浏览器js脚本暂停运行,脚本恢复运行时通过时间差就能大致的判断app是否启动成功)。但现实情况下,由于各种浏览器与系统的差异性,无法通过js百分百的准确判断app是否启动成功;比如从ios9.2开始,通过schema启动app时,ios系统会弹出一个非模态的系统提示框,询问用户是否同意启动,在用户没有做出选择前,js脚本将继续运行,这将导致js完全无法判断app是否启动成功。
(4)
Universal Link(通用链接):
ios9开始提供通用链接的特性,app开发时可配置一个与app对应的关联域名,在ios9以上系统的所有浏览器中,访问任何一个url链接前,系统将检查本地是否已安装与url域名相对应的app,如果已安装对应的app,将进一步检查链接url的路径,是否应当启动该app,而不在浏览器中访问此url链接。但是通用链接存在一个容易让人迷惑的地方,在经过通用链接启动app后,用户可以选择使用safari访问此url,系统会默默的记住用户的选择,在下次访问通用链接的url时,系统将不再启动app,而是直接在浏览器中访问此url,并且没有明显的提示;(在safari中,用户只有手动往下拽了该页面时,才会出现一个询问用户打开app的banner,其它浏览器则未必有此功能,而是完完全全的忽略掉通用链接)
(5)
应用宝微下载:
正常情况下,微信内置浏览器中,无法通过scheme启动app,无法下载apk,也无法跳转到app store,但微信与QQ均集成了对应用宝的支持。通过使用应用宝的微下载功能,android下的微信与QQ帮助判断某个app是否已安装,已安装的情况下,提示用户直接启动app(在应用宝中需配置启动用的scheme),未安装的情况下,可直接下载已上架到应用宝的apk文件;ios下,由于无法判断某个应用是否已安装(特别是ios>=9.2出现的提示窗口),应用宝只提供了跳转app store的功能,而没有启动app的功能。
如何从推广短信链接唤起 App ?这种一键跳转的方式了解一下!相关推荐
- 一切为了运营!如何从推广短信链接唤起 App?
●●● 需求描述 写这篇文章,也是缘于运营的一个需求:在 App 运营过程中,会有大量的推广短信,里面附有链接,目的是引导用户参与活动.如果用户手机没有安装我们的 App 就引导其去下载页,如果用户已 ...
- 一切为了营收!如何从推广短信链接唤起 App ?
一.需求描述 写这篇文章,也是缘于运营的一个需求:在 App 运营过程中,会有大量的推广短信,里面附有链接,目的是引导用户参与活动.如果用户手机没有安装我们的 App 就引导其去下载页,如果用户已经安 ...
- 微信外部浏览器或短信链接唤起微信小程序的解决方案
微信外部浏览器或短信链接唤起微信小程序的解决方案 背景 解决方案 背景 有这样一个需求,在微信外部浏览器或短信链接唤起微信小程序(注意:不是在微信内部H5唤起浏览器,因为微信内部H5唤起浏览器可以直接 ...
- Android 点击短信链接打开App
一.背景 随着APP产品的迭代,运营的过程中往往会有一些活动希望通知到用户,或者唤起沉睡用户,就我们Android而言,当然有推送,长连接一类的方法,但是,基于国内的推送环境,只能APP自己启动长连接 ...
- android 短信 aapp,谈谈App的统一跳转和ARouter
App中每次页面跳转,都需要调用统一导航, 它用的非常频繁, 有必要对它进行一下梳理. 让他能用起来简单方便, 同时能支持各种常用的跳转业务场景. 一. Android跳转遇到的问题 1.intent ...
- 短信链接复制搜索公众号,短信如何推广公众号?
复制搜索公众号H5在线免费制作,短信链接推广公众号必备神器:复制自动提示搜索公众号,引导关注关注. 我们使用短信推广公众号关注的过程中可能希望对方搜索关注公众号:如果直接让用户搜索关注的话操作比较麻烦 ...
- Android 点击Url(短信链接)打开App 的调研与实现
前言: 随着APP产品的迭代,运营的过程中往往会有一些活动希望通知到用户,或者唤起沉睡用户,就我们Android而言,当然有推送,长连接一类的方法,但是,基于国内的推送环境,只能APP自己启动长连接, ...
- java对接阿里云短信服务详解(验证码,推广短信,通知短信)
前言 小前提: - java:springboot框架,maven版本管理. - 阿里云:有账号,已经进行实名认证. java对接阿里云短信服务详解(验证码,推广短信,通知短信) 前言 1. 登录阿里 ...
- 短信链接可以直接跳转微信小商店么?
目前微信已支持短信跳转小程序,微信小商店是否可以支持跳转?天天外链支持短信链接跳转微信小商店. 微信目前已支持短信推广,支持短信中的链接跳转微信小程序,个人快速开店之后的店铺是否可以通过短信推广?短信 ...
最新文章
- 【金三银四跳槽季】Java工程师的面试之路,需要“解锁”哪些技术盲点?
- Node.js 执行webpack命令出现的错误
- MySQL触发器使用详解
- php 验证微信token_php之微信公众号验证token获取access_token
- 凉凉了,Eureka 宣布闭源,Spring Cloud 何去何从? 1
- “OSPF” Router-ID
- Linux服务器开机自动启动服务或脚本的方法
- 不错的Feature设计:提建议并投票
- Machine Learning——Homework1
- 在线随机图片与网易云音乐解析API网页源码
- deepl pro 2.0.0专业版
- python求奇偶数和_用Python返回偶数和奇数
- java基础-并发理论
- html倒计时的原理,JS实现活动精确倒计时 - 轩枫阁
- 无盘系统服务器虚拟内存,Windows7无盘虚拟内存如何设置
- i(1<<j)什么意思?
- 声明一个Tree(树)类,有成员ages(树龄),成员函数grow(int years)用以对ages 加上years,showage( )用以显示tree对象的ages值。在主函数中定义Tree类对
- 网页文件是用html语言创建的文本文件,html格式怎么编辑 在电脑桌面创建一个空白文本文件:...
- html转换成移动端h5,HTML5移动端手机网站基本模板
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java自来水收费管理系统7yd5p