uniapp 安卓 长按app 快捷方式 shortcut
一、配置manifest.json文件
切换到代码视图,uni-app项目在"app-plus"->“distribute”->"ios"下添加shortcuts节点,并配置各菜单项,数组中每项对应一个快捷菜单项:
"shortcuts" : [
{
"type" : "sweep",
"title" : "扫一扫",
"subtitle" : "",
// "icontype" : "UIApplicationShortcutIconTypeShare"
"iconfile" : "/static/img/sweep.png" //自定义图标 路径相对于根目录
}
]
其中各字段值规范如下:
1.type: (必选)菜单项类型,字符串类型,用于标识菜单项
2.title: (必选)菜单项上显示的标题,字符串类型
3.subtitle: (可选)菜单项上显示的子标题,字符串类型
4.icontype: (可选)菜单项上显示的图标类型,字符串类型,取值参考iOS官方文档UIApplicationShortcutIconType
5.iconfile: (可选)菜单项上显示的图标文件,字符串类型,相对5+应用根目录路径,图标要求35x35分辨率,单色,参考Apple官方PS模板图
6.userinfo: (可选)菜单项上的自定义数据,JSON格式
项目目录:
二、APP.vue内,应用生命周期onshow()内,监听应用是否为快捷键“扫一扫”打开所启动
onShow: function() {
console.log('App Show');
if(plus.runtime.launcher=='shortcut'){//快捷方式唤醒扫一扫功能
var cmd = JSON.parse(plus.runtime.arguments);
var type=cmd&&cmd.type;
console.log(type)//sweep
if(type&&type=="sweep"){
、、、、、、快捷 *** 作要执行的逻辑
}
}
以上 *** 作完成,执行代码时发现:
plus.runtime.launcher 得到的值是default,而不是 shortcut???
百度结果:
pages.json有condition这个节点会影响ios的启动,去除即可。
然后,执行代码,发现第一次使用快捷键打开应用后,后续不是快捷键打开也会执行上述快捷键逻辑。
原因:首次使用快捷键打开应用后,plus.runtime.arguments对象内始终保存着type值,除非杀掉app。
所以每次快捷键打开应用后,只需将plus.runtime.arguments置空即可。
onShow: function() {
console.log('App Show');
if(plus.runtime.launcher=='shortcut'){//快捷方式唤醒扫一扫功能
var cmd = JSON.parse(plus.runtime.arguments);
var type=cmd&&cmd.type;
console.log(type)//sweep
if(type&&type=="sweep"){
、、、、、、快捷 *** 作要执行的逻辑
}
plus.runtime.arguments=null;
}
效果:
参考:
ios 快捷菜单项
IOS下plus.runtime.arguments不能获取到URL Scheme协议参数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)