
❝
我们一般做APP都会提供一个下载界面,方便用户下载产品
本文将介绍相关逻辑,UI就比较随意了!
❞
判断手机系统
使用浏览器头部信息获取关键字
// 是否为苹果系统 手机/电脑/平板
let version = navigator.userAgent.toLowerCase();
let mac = version.indexOf('mac');
let os = version.indexOf('os');
if(mac > 0 && os > 0){
return true
}
return false
判断网页环境
使用浏览器头部信息获取关键字
// 小写
let ua = navigator.userAgent.toLowerCase()
// 大写
let UA = navigator.userAgent.toUpperCase()
if (ua.match(/MicroMessenger/i) == "micromessenger"){
// 微信浏览器
this.isWx = true
}
// 上一步判断的结果
// youid 是 app应用商城的id 个数为id + 数字
if(this.ios){
window.location.href = 'https://apps.apple.com/cn/app/youid'
return
}
// this.brand 品牌
if(UA.indexOf('XIAOMI') > 0){
// 小米
this.brand = 'XiaoMi'
}
if(UA.indexOf('HUAWEI') > 0){
// 华为
this.brand = 'Huawei'
}
// 更多品牌
...
获取最新版本信息
// 获取最新的版本信息
this.loading = true
const res = await axios.post(latestVerson,{
os: this.ios ? 'iOS' : 'Android'
})
this.loading = false
if(res.code === 200){
// 版本号
this.versoinInfo.versoin = res.data.versoin
// 下载地址
this.versoinInfo.url = res.data.url
// 创建时间
this.versoinInfo.createTime = res.data.createTime
}
界面
<template>
<div>
<div class="logo">
<!-- logo图片 -->
<img src="../assets/img/logo.png" alt="">
</div>
<!-- APP名称 -->
<div class="title">我的APP</div>
<!-- 版本号 -->
<div class="desc" v-if="!loading && versoinInfo.versoin">
版本:{{versoinInfo.versoin}}
</div>
<!-- 更新时间 -->
<div v-if="!loading" class="desc">更新时间:{{versionInfo.createTime}}</div>
<!-- 下载按钮 -->
<div v-if="!loading && !isLoaded" class="btnBox">
<template v-if="versoinInfo.url">
<a v-if="ios" class="install" :href="'itms-services://?action=download-manifest&&url=' + versionInfo.url">IOS安装</a>
<a v-else class="install" href="javascript:void(0);" @click="install">Android安装</a>
<a v-if="brand " href="javascript:void(0);" @click="goMarket">应用商店下载</a>
</template>
</div>
<!-- 下载处理 -->
<div class="loaded" v-if="ios && !isLoaded">刷新浏览器跳转APP STORE下载</div>
<div class="loaded" v-if="ios && isLoaded">请返回桌面查看下载进度</div>
<div class="loaded" v-if="!ios && isLoaded">请在浏览器中查看下载进度</div>
<!-- 微信浏览器处理 -->
<div v-if="isWx" class="cover">
<img src="../assets/img/arrow.png" alt="">
<div class="textBox">
<label for="">请点击右上角选择</label>
<label for="">在浏览器中打开</label>
</div>
</div>
</div>
</template>
普通安装
使用iframe直接下载安装包 上述的install方法
var src = this.versionInfo.url;
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.src = "javascript: '<script>location.href="" + src + ""</script>'";
document.getElementsByTagName('body')[0].appendChild(iframe);
window.setTimeout(function(){
this.isLoaded = true
}, 5000)
跳转应用市场安装
使用iframe直接下载安装包 上述的goMarket方法
// data数据
// 包名
packge: 'com.xxx.xxx'
// scheme列表
scheme: {
XiaoMi: 'mimarket://details?id=',
Huawei: 'market://details?id='
}
// 跳转方法
window.open(this.scheme[this.brand] + this.packge)
以上就是基本的流程,可根据逻辑自己调整UI
微信浏览器目前已不需要额外配置,但为了保险起见,最好做个处理
如果感觉有帮助,麻烦3连(关注、赞、在看),谢谢! 后面会更新更多。
原文始发于微信公众号(分享是个有趣的东西):Vue实现APP的H5下载页面实战
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/158782.html