虾分发文档中心
发布与下载
打包 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分发应用平台 如何利用虾分发提升App影响力 虾分发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时就不会有任何反应