uni-app项目配置UrlSchemes在外部打开APP
已经安装跳转应用的情况
1.对于IOS配置打包
配置路径manifest->app-plus->distribute->ios
注意不要使用大写及中文以及特殊字符等,示例代码如下
"urltypes" : [{"urlidentifier" : "com.runtest.test","urlschemes" : [ "runtest" ]}]
配置好后需要打包后才能生效,在另一个应用或者程序中访问带有唤起链接的页面访问runtest://
如下
点击链接后会提示是否打开
2.安卓配置打包
云打包:配置路径manifest->app-plus->distribute->android
配置与ios类似,示例代码如下"schemes" : "runtest"
配置好后云打包,与ios相同本地离线打包
- 打开Android项目的
AndroidManifest.xml
文件。 - 将应用入口
activity
中的android:scheme
值改为需要的UrlSchemes
即可。
若未知是否安装应用
在唤起应用页面用js代码请求该协议,如果在500ms内,如果有应用程序能解析这个协议,那么就能打开该应用;如果超过500ms就跳转到app下载页。
// 打开链接
openApp() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
uni.showModal({
showCancel: false,
title: "提示",
content: "请用外部浏览器打开!"
})
return
}
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
window.location = "https://apps.apple.com/us/app/商店链接" // 可以在苹果开发者中心找对应APP的链接
// window.location = "runtest://"
} else if (navigator.userAgent.match(/android/i)) {window.location.href = "runtest://page=index"
uni.showLoading({
mask: true
})uni.hideLoading();
uni.showModal({
title: "提示",
content: "暂未检测到客户端,是否下载?",
success: function(res) {
if (res.confirm) {
window.location =
"下载链接"
} else if (res.cancel) {
// window.close();
}
}
})
}
},
因为在打开APP过程中有添加Loading状态去先校验是否有安装此APP,如果存在这个APP打开后,该页面应取消LOADING状态并且禁止弹出未安装提示:
onHide() {
if (this.downLoadHandle) {
uni.hideLoading()
clearTimeout(this.downLoadHandle)
}
},
在应用中对于从外部唤起的链接可以根据参数对应跳转指定页面,由于IOS的部分问题,需要包一个定时器才会生效
onShow: function() {// #ifdef APP-PLUSlet urlMap={index:"/pages/index/index"}setTimeout(function() {var args = plus.runtime.arguments.split("://page=")[1];util.toast(urlMap[args])if (args) {plus.runtime.arguments = '';uni.navigateTo({url: urlMap[args] || "/pages/index/index"})}}, 10);// #endif}
可参考dcloud官方文档:
Android:https://ask.dcloud.net.cn/article/409
iOS:https://ask.dcloud.net.cn/article/64
uni-app项目配置UrlSchemes在外部打开APP相关推荐
- 头条App项目测试实战(二)App手工测试流程以及需求分析与评审
熟悉头条App项目步骤: 业务特性 用户与角色 组织架构图 技术栈 头条App测试流程(一次迭代) 测试流程 需求分析与评审 编写测试计划(测试方案) 设计测试用例与评审 执行测试用例与缺陷跟踪 编写 ...
- uni-app App端配置urlSchemes
注意不要使用大写及中文以及特殊字符等:配置好后需要打包后才能生效 IOS配置路径 打开manifest->源码视图,在app-plus->distribute->ios 输入下面的代 ...
- vue 项目 v-cli3 IE浏览器无法打开app.js 报错解决
项目在谷歌浏览器上显示正常,在ie浏览器打不开, 找了好久没有找到问题. 编译后发现 es6的一些语法 没有被转化为es5. ie浏览器无法显示. 安装babel插件后 build后就没有问题了 转载 ...
- Vue仿饿了么app项目总结
前言 这是我的第一个基于Vue项目的作品,目的是把之前的前端知识累积加上目前流行的前端框架,以项目的形式展示出来. 大家在学习Vue的时候,可以将此项目作为学习Vue框架的一个模板 Vue仿饿了么ap ...
- web页面中如何唤起打开APP实践
作者:拾邑 链接:https://github.com/suanmei/callapp-lib/issues/1 前段时间在做一些H5页面,落地页占比较大,落地页承担的职责就是引流.引流有两种形式,同 ...
- web页面中如何唤起打开APP
网上看到这篇文章,写的很清楚,这里转载记录一下.H5唤起APP指南 | 拾壹小筑 1.前言 前一段时间在做电流App H5页面,需求中落地页占比较大,落地页承担的职责就是引流.引流有两种形式,同时也是 ...
- 让HR眼前一亮:30个APP项目软件测试经验,点燃你的简历
在求职过程中,我们都希望自己的简历能够吸引面试官的眼球,从而获得更多的面试机会.作为一名软件测试人员,丰富的实战经验是让自己脱颖而出的关键之一. 在我多年从事APP项目软件测试的工作中,我积累了大量的 ...
- android studio安卓手机tcp通信打开app自动连接,连接失败自动重试8次
最近在做一个项目,项目其中一个需求是打开app自动连接tcp服务端,连接失败后自动尝试8次.尝试成功继续,不成功提示服务器未响应. 我想到了用多线程实现,其中一个用于显示尝试状态,另一个线程循环尝试s ...
- android gdx 放进布局,Android - 将LibGDX项目放入Anroid App项目
我正在使用Android Studio ,我该如何将LibGDX项目放入Android App项目中(不是将Android App项目放入LibGDX项目中)? 这是将libGDX模块导入Androi ...
最新文章
- 【UGV】小车一些图片
- python 更改输出的颜色_python 输出指定的颜色
- TypeScript 枚举指南
- imx6 配置串口波特率_RS232串口多机通信
- TypeScript 乱糟笔记
- 视镜:华为云媒体质量管理最新实践
- asp转php后数据库连接代码,ASP_asp 数据库连接函数代码,以下是SQL连接代码: 复制代码 - phpStudy...
- 让html的text输入框只能输入数字和1个小数点
- 简单的解决办法,复杂的分析工作
- java开发项目心得体会
- FPGA-小梅哥时序分析
- 苹果cmsv8黑色简约炫酷手机免费影视模板
- Java接口测试工具rap_接口文档管理工具-Postman、Swagger、RAP(转载)
- メリッサ / 梅莉莎
- html点击按钮弹出悬浮窗_点击文字或按钮弹出一个DIV窗口(DIV悬浮窗口)
- 星星之火OIer:手机网络
- unity 发布苹果商店_[Mac] Unity 导出 iOS 游戏并上架 App Store
- linux 查看java进城_linux查看java进程|线程池信息
- 关于飞思卡尔的芯片固件库问题,为什么5.3没有8位芯片固件选择MC9S08DZ60芯片
- python 加载DLL动态链接库
热门文章
- 虚拟服务器网络不通,VMware Workstation ping 不通的解决方法
- 基于负熵的快速不动点算法
- 手机wifi服务器文件途径,查看手机wifi服务器dns地址
- 万能查看电脑连接过的WiFi密码
- 金融去杠杆环境下,请聆听麦子金服财富投资者给出的答案
- Python实战小项目—绘制玫瑰花送给女朋友叭
- html的meta总结,html标签中meta属性使用介绍
- Linux系统下安装screen
- c语言做相册影集,相册制作-影楼相册制作 看了这个你也会相册制作了 电子相册制作软件下载附使用教程...
- mysql 1.42_mysql-查询(DQL)