ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用uni-app实现使用浏览器下载功能时,安卓端部分机型不兼容问题(小米/华为)

2021-09-30 17:32:23  阅读:324  来源: 互联网

标签:openURL 兼容问题 app plus 手机 安卓端 浏览器 runtime 下载


在公司中使用 uni-app 进行移动端开发过程中涉及到检查更新功能的一些奇葩问题(主要是plus.runtime.openURL的使用)和大家进行分享一下。

文章目录

1. 实现检查更新用的方法

1.1 检查更新方法的改变原因

​ 其实在一开始的功能实现中使用的是plus.downloader.createDownload,但由于没有进行过安卓插件的研究,无法实现在手机的通知栏中显示当前安装包的下载进度,而且在实际使用中出现切换当前开发的App至手机后台之后,会出现下载成功之后却不弹出安装提示的问题。

​ 为了解决这个问题,目前主要是通过plus.runtime.openURL的使用,来完成可查看进度条和不弹出安装提示的问题。

1.2 关于 plus.runtime.openURL 的介绍

详情介绍,肯定还是官网上来的更详细,下面直接上官网对应部分的截图啦,官网地址(https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.openURL)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1nfwkdr-1632993753711)(C:\Users\maogs\AppData\Roaming\Typora\typora-user-images\image-20210902185504405.png)]

2. 在使用中出现部分手机不兼容问题

plus.runtime.openURL 的使用中,主要遇到了两款手机的不兼容问题,下面讲一下解决思路

2.1 小米手机不兼容

最开始是通过 plus.runtime.openURL 方法来直接打开远端apk安装包的存放地址

// 弹出浏览器选项,选择手机上安装的其中一个浏览器进行App安装包的下载操作
plus.runtime.openURL(url);

​ 在打包进入测试流程之后,使用plus.runtime.openURL 更新app,发现小米手机出现报错“ 下载地址不可用,创建任务失败 ”,查了好多网站后发现,小米手机打开下载地址不是通过浏览器,使用的是手机系统自带的下载进行打开的。所以会对我们给定的下载地址不识别。

这个时候通过查阅H5官网上的 plus.runtime.openURL 方法的参数定义,通过使用指定下载地址的打开方式完成了小米手机的兼容。

// 使用手机上自带的浏览器进行App安装包的下载操作
plus.runtime.openURL(url, (error) => {
this.showToast("更新失败," + error);
}, "com.android.browser");

2.2 华为手机(鸿蒙系统)不兼容

在实现了小米手机使用浏览器下载的不兼容问题后,对其他安卓机型进行测试都没有问题,以为没有问题时,在更新了鸿蒙系统的华为手机上发现原来的可以正常使用的下载功能不能使用了,然后检查更新使用的代码发现只在做兼容小米手机的时候做了修改。

因为两家手机厂商的使用用户占总比例较高,所以要完成两者的同时兼容

直接上代码

// 安装包下载地址(该地址属于自行设置的部分)
let url = updateInfo.url;
// 手机型号
let phoneModel = plus.device.model;
// 手机厂商
let phoneVendor = plus.device.vendor;
// 开始进行安卓更新包下载
this.showToast(ZsCommon.appName + "更新包开始下载");

// 根据手机设备信息进行下载
if (phoneModel.match("mi") || phoneVendor == "Xiaomi") {
// 使用手机上自带的浏览器进行App安装包的下载操作
plus.runtime.openURL(url, (error) => {
this.showToast("更新失败," + error);
}, "com.android.browser");
} else {
// 弹出浏览器选项,选择手机上安装的其中一个浏览器进行App安装包的下载操作
plus.runtime.openURL(url);
}

通过plus.device可以获取获取设备信息管理对象。

关于当前接口的更多信息,大家可以登录H5的官网去查看更多自己想要信息 https://www.html5plus.org/doc/zh_cn/device.html

标签:openURL,兼容问题,app,plus,手机,安卓端,浏览器,runtime,下载
来源: https://blog.csdn.net/litter_m/article/details/120570094

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有