虾分发文档中心
发布与下载
打包 iOS 的 IPA 文件 实名认证有何作用?需要填写哪些材料? 怎样上传发布APP,合并安卓和苹果链接和二维码? 如何设置APP相关信息(例如更换图标、选择下载页等)? 发布APP有无大小限制,超过300M以上的包可以发布吗? 常见问题 苹果APP内测分发渠道究竟有几种 apk安装提示风险应用报病毒恶意软件加固完美解决 什么叫软件的分发? APP分发与内测托管:你的应用背后的秘密武器 cdn分发是指什么? App内测分发五大趋势 什么是APP封装?APP封装如何实现? 安卓APP的分发渠道都有哪些? 上架app到应用商店到底有多难? 虾分发:什么是APP分发和内测托管? 无广告托管应用,免费测试应用分发平台,Android、ios应用合并,一个二维码搞定 app分发会有哪些坑? 最近发现一款可免费试用的APP内测分发平台,分享给大家 CDN加速是什么?具体有什么用? 苹果包ipa怎么分发安装? 新规明确所有APP必须备案!附备案指引 ios证书打包分发全流程 APP分发-CDN加速原理 内测神器!虾分发帮你快速分发App 苹果哪个分发平台好用? 如何选择App分发平台? 应用分发平台:测试与发布的最佳实践 如何选择好的iOS分发平台? 应用分发是什么?为什么需要app分发? app分发下载 如何进行APP软件分发? APP分发是什么?APP分发怎么做? 软件分发--安卓篇 APP如果想要分发给用户去使用,怎么办? APP分发一些坑和注意事项 制作和分发一个App需要以下步骤 APP分发,支持应用合并、内测分发、扫码下载,下载量安装量统计,版本记录和应用在线封装打包app 免费app分发平台应用cdn分发平台为什么会免费?虾分发分析报告 应用app分发的服务器如何增加高并发?试试这四个办法 APP开发好后该如何进行测试 APP应用内测分发时需要注意哪些 让用户如何下载完整版苹果iosAPP APP开发好后如何快速进行内测分发 APP内测分发步骤详细解说 开发者发布与推广应用的多元选择 苹果分发:策略与途径详解 APP分发:意义、策略与未来发展新趋势 APP分发平台开发流程 app分发的整个流程、相关要求以及需要注意的事项 高效、安全的APP分发与推广平台 app分发步骤有那些? 2024年App分发渠道整理 什么是App分发?那些分发平台可以选择? 关于APP分发,要取得更好效果需要注意的!虾分发 App内测分发是什么意思?内测方式有哪些? 何进行APP下载分发? APP开发完了,如何进行APP软件分发内测? 新手小白都在问的APP分发平台怎么使用? app分发下载安全吗 如何提升虾分发平台用户体验 虾分发如何管理APP分发平台 APP分发系统的主要功能和特点 app内测分发托管有哪些平台? 快速高效APP开发平台 主流app分发平台有哪些? App搭建上架的原理和详细步骤 关于苹果手机内测分发策略的详细介绍 APP分发的挑战与机遇 现在的App分发渠道多种多样 APP分发移动应用分发未来:内容驱动 实现App分发的几种主要方式 如何在APP分发平台上测试和调试应用呢 应用分发策略与渠道优化:确保应用成功触达用户的关键 app应用分发平台一站式分发 APP分发平台在推广过程起到什么作用? 关于APP分发平台托管APP的主要功能和特点 稳定的APP分发平台具体哪些条件? 寻找APP分发平台的方法和建议 优质的app应用分发平台 app分发是什么意思 APP分发平台封装H5关键步骤 如何通过“虾分发”轻松实现应用分发 虾分发平台可以打包封包吗 CDN在App分发中的作用-虾分发 自定义域名设置(七牛云配置证书) 游戏内测就上虾分发平台 高速的分发平台具体什么条件?
资讯中心
出现证书信任怎么办?可以不信任直接安装吗? APP报毒的原因和解决方式如下 ios app安装的多种方式 iOS开发者是钻研SwiftUI还是尝试接触Flutter好呢? App上架苹果流程及注意事项 app网站是干什么的呢? 搭建一个高效且安全的app分发平台 IOS封装平台的详细解析
应用封装
安卓手机APK误报毒解决方案 封装支持在线更新吗? 无闪退版本封装和普通封装有什么区别? 封装APP中,该如何选择浏览器内核? 封装APP中,如何配置第三方分享? 安卓手机视频播放时无法全屏,如何解决? 极光推送如何申请? 如何配置极光推送的消息?(安卓版) 封装好的APP还可以重新编辑吗? URL拉起APP,如何配置? 封装APP具体教程&功能插件介绍 网页封装APP相对原生APP有什么优势? APP与后台安全性问题和应对方案 APP运营分析数据分析及关键指标 webapp开发框架选择注意点 web与app开发移动web开发和移动app开发的区分 移动App开发和分发 网站封装成APP需要怎么做? app开发工具使用说明 在线ios封装是干什么的? 企业是否需要开发app 2023年移动端应用开发的出路是什么? 想做一款手机app,需要什么? 网页应用打包安卓App (全网最详细教程) H5如何实现唤起APP唤端技术 想要低成本快速制作APP?只需几分钟,手机网站就能变身为跨平台APP!
H5如何实现唤起APP唤端技术

这项技术我们就可以实现H5唤起APP应用了,现阶段的引流方式大都得益于这种技术,比如广告投放、用户拉新、引流等。虾分发 app分发 xiafenfa.com。

唤端技术
体验过后,我们就来聊一聊它的实现技术是怎样的,唤端技术我们也称之为deep link技术。当然,不同平台的实现方式有些不同,一般常见的有这几种,分别是:

URL Scheme(通用)
Universal Link (iOS)
App Link、Chrome Intents(android)
URL Scheme(通用)
这种方式是一种比较通用的技术,各平台的兼容性也很好,它一般由协议名、路径、参数组成。这个一般是由Native开发的同学提供,我们前端同学再拿到这个scheme之后,就可以用来打开APP或APP内的某个页面了。

URL Scheme 组成
[scheme:][//authority][path][?query][#fragment]

常用APP的 URL Scheme
APP 微信 支付宝 淘宝 QQ 知乎
URL Scheme weixin:// alipay:// taobao:// mqq:// zhihu://
打开方式
常用的有以下这几种方式

直接通过window.location.href跳转
window.location.href = 'zhihu://'
1
通过iframe跳转
const iframe = document.createElement('iframe')
iframe.style.display = 'none'
iframe.src = 'zhihu://'
document.body.appendChild(iframe)
直接使用a标签进行跳转
通过js bridge来打开
window.miduBridge.call('openAppByRouter', {url: 'zhihu://'})
判断是否成功唤起
当用户唤起APP失败时,我们希望可以引导用户去进行下载。那么我们怎么才能知道当前APP是否成功唤起呢?

我们可以监听当前页面的visibilitychange事件,如果页面隐藏,则表示唤端成功,否则唤端失败,跳转到应用商店。

OK,我们尝试来实现一下:

首先我手机上并没有安装腾讯微博,所以也就无法唤起,我们让他跳到应用商店对应的应用下载页,这里就用淘宝的下载页来代替一下~

<template>
<div class="open_app">
<div class="open_app_title">前端南玖唤端测试Demo</div>
<div class="open_btn" @click="open">打开腾讯微博</div>
</div>
</template>

<script>
let timer
export default {
name: 'openApp',
methods: {
watchVisibility() {
window.addEventListener('visibilitychange', () => {
// 监听页面visibility
if(document.hidden) {
// 如果页面隐藏了,则表示唤起成功,这时候需要清除下载定时器
clearTimeout(timer)
}
})
},
open() {
timer = setTimeout(() => {
// 没找到腾讯微博的下载页,这里暂时以淘宝下载页代替
window.location.href = 'http://apps.apple.com/cn/app/id387682726'
}, 3000)
window.location.href = 'TencentWeibo://'
}
}
}
</script>

<style lang="less">
.open_app_title {
font-size: (20/@rem);
}
.open_btn{
margin-top:(20/@rem);
padding:(10/@rem) 0;
border-radius: (8/@rem);
background: salmon;
color: #fff;
font-size: (16/@rem);
}
</style>


适用性
URL Scheme 这种方式兼容性好,无论安卓或者 iOS 都能支持,是目前最常用的方式。从上图我们能够看出它也有一些比较明显的缺点:

无法准确判断是否唤起成功,因为本质上这种方式就是打开一个链接,并且还不是普通的 http 链接,所以如果用户没有安装对应的 APP,那么尝试跳转后在浏览器中会没有任何反应,通过定时器来引导用户跳到应用商店,但这个定时器的时间又没有准确值,不同手机的唤端时间也不同,我们只能大概的估计一下它的时间来实现,一般设为3000ms左右比较合适;

从上图中我们可以看到会有一个弹窗提示你是否在对应 APP中打开,这就可能会导致用户流失;

有 URL Scheme 劫持风险,比如有一个 app 也向系统注册了 zhihu:// 这个 scheme ,唤起流量可能就会被劫持到这个 app 里;

容易被屏蔽,app 很轻松就可以拦截掉通过 URL Scheme 发起的跳转,比如微信内经常能看到一些被屏蔽的现象。

Universal Link (iOS)
Universal Link 是在iOS 9中新增的功能,使用它可以直接通过https协议的链接来打开 APP。
它相比前一种URL Scheme的优点在于它是使用https协议,所以如果没有唤端成功,那么就会直接打开这个网页,不再需要判断是否唤起成功了。并且使用 Universal Link,不会再弹出是否打开的弹出,对用户来说,唤端的效率更高了。

原理
在 APP 中注册自己要支持的域名;

在自己域名的根目录下配置一个 apple-app-site-association 文件即可。(具体的配置前端同学不用关注,只需与iOS同学确认好支持的域名即可)

打开方式
openByUniversal () {
// 打开知乎问题页
window.location.href = 'https://oia.zhihu.com/questions/64966868'
// oia.zhihu.com
},

适用性
相对 URL Scheme,universal links 有一个较大优点是它唤端时没有弹窗提示是否打开,提升用户体验,可以减少一部分用户流失;

无需关心用户是否安装对应的APP,对于没有安装的用户,点击链接就会直接打开对应的页面,因为它也是http协议的路径,这样也能一定程度解决 URL Scheme 无法准确判断唤端失败的问题;

只能够在iOS上使用

只能由用户主动触发

App Link、Chrome Intents(Android)
App Link
在2015年的Google I/O大会上,Android M宣布了一个新特性:App Links让用户在点击一个普通web链接的时候可以打开指定APP的指定页面,前提是这个APP已经安装并且经过了验证,否则会显示一个打开确认选项的弹出框,只支持Android M以上系统。

App Links的最大的作用,就是可以避免从页面唤醒App时出现的选择浏览器选项框;

前提是必须注册相应的Scheme,就可以实现直接打开关联的App。

App links在国内的支持还不够,部分安卓浏览器并不支持跳转至App,而是直接在浏览器上打开对应页面。
系统询问是否打开对应App时,假如用户选择“取消”并且选中了“记住此操作”,那么用户以后就无法再跳转App。
Chrome Intents
Chrome Intent 是 Android 设备上 Chrome 浏览器中 URI 方案的深层链接替代品。

如果 APP 已安装,则通过配置的 URI SCHEME 打开 APP。

如果 APP 未安装,配置了 fallback url 的跳转 fallback url,没有配置的则跳转应用市场。

这两种方案在国内的应用都比较少。

方案对比
URL Scheme Universal Link App Link
<ios9 支持 不支持 不支持
>=ios9 支持 支持 不支持
<android6 支持 不支持 不支持
>=android6 支持 不支持 支持
是否需要HTTPS 不需要 需要 需要
是否需要客户端 需要 需要 需要
无对应APP时的现象 报错/无反应 跳到对应的页面 跳到对应的页面
URI Scheme

URI Scheme的兼容性是最高,但使用体验相对较差:

当要被唤起的APP没有安装时,这个链接就会出错,页面无反应。

当注册有多个scheme相同的时候,没有办法区分。

不支持从其他app中的UIWebView中跳转到目标APP, 所以ios和android都出现了自己的独有解决方案。

Universal Link

已经安装APP,直接唤起APP;APP没有安装,就会跳去对应的web link。
universal Link 是从服务器上查询是哪个APP需要被打开,所以不会存在冲突问题
universal Link 支持从其他app中的UIWebView中跳转到目标app
缺点在于会记住用户的选择:在用户点击了Universal link之后,iOS会去检测用户最近一次是选择了直接打开app还是打开网站。一旦用户点击了这个选项,他就会通过safiri打开你的网站。并且在之后的操作中,默认一直延续这个选择,除非用户从你的webpage上通过点击Smart App Banner上的OPEN按钮来打开。
App link

优点与 universal Link 类似

缺点在于国内的支持相对较差,在有的浏览器或者手机ROM中并不能链接至APP,而是在浏览器中打开了对应的链接。

在询问是否用APP打开对应的链接时,如果选择了“取消”并且“记住选择”被勾上,那么下次你再次想链接至APP时就不会有任何反应