DCloud_App_Array
DCloud_App_Array
  • 发布:2015-10-29 11:40
  • 更新:2024-07-31 17:40
  • 阅读:7913

iOS平台支持3D Touch快捷菜单项

分类:HTML5+

iPhone6s(plus)设备已经支持3D Touch屏幕,HBuilder已支持添加应用的快捷菜单,效果如下:

配置快捷菜单项

打开应用的manifest.json文件,切换到代码视图,在plus -> distribute -> apple 下添加shortcuts节点,并配置各菜单项,数组中每项对应一个快捷菜单项:

    "shortcuts": [  
        {  
            "type": "share",  
            "title": "分 享",  
            "subtitle": "分享到微信、微博、QQ",  
            "icontype": "UIApplicationShortcutIconTypeShare"  
        },  
        {  
            "type": "about",  
            "title": "关 于",  
            "subtitle": "www.dcloud.io",  
            "iconfile": "sa.png",  
            "userinfo": {  
                "key3":"value3"  
            }  
        }  
    ],

uni-app项目将以上数据添加到"app-plus"->"distribute"->"ios"节点下
其中各字段值规范如下:

  • type: (必选)菜单项类型,字符串类型,用于标识菜单项
  • title: (必选)菜单项上显示的标题,字符串类型
  • subtitle: (可选)菜单项上显示的子标题,字符串类型
  • icontype: (可选)菜单项上显示的图标类型,字符串类型,取值参考iOS官方文档UIApplicationShortcutIconType
  • iconfile: (可选)菜单项上显示的图标文件,字符串类型,相对5+应用根目录路径,图标要求35x35分辨率,单色,参考Apple官方PS模板图
  • userinfo: (可选)菜单项上的自定义数据,JSON格式

App中处理快捷菜单项

判断应用是否通过快捷菜单项启动
plus.runtime.launcher的值为"shortcut"表示应用从快捷菜单项启动,示例如下:

if(plus.runtime.launcher=='shortcut'){  
     // ...  
}

判断快捷菜单项启动的参数
plus.runtime.arguments中保存所有快捷菜单项配置的值(JSON格式字符串),示例如下:

var cmd = JSON.parse(plus.runtime.arguments);  
console.log("Shortcut-plus.runtime.arguments: "+plus.runtime.arguments)  
var type=cmd&&cmd.type;  
switch(type){  
    case 'share':  
        // 用户点击了‘share'菜单项  
    break;  
    case 'about':  
        // 用户点击了’about'菜单项  
    break;  
    default:  
    break;  
}

plus.runtime.arguments的JSON格式字符串示例如下:
“{"type":"about","title":"关 于","subtitle": "www.dcloud.io","userinfo":{"key3":"value3"}}”
其中包括以下键值:

  • type: 菜单项类型,字符串类型
  • title: 菜单项上显示的标题,字符串类型
  • subtitle: 菜单项上显示的子标题,字符串类型
  • userinfo: 菜单项上的自定义数据

注:真机运行不生效,需提交App云端打包后才生效

实际用法参考HelloH5应用的“js/shortcut.js”
iOS平台5+SDK原生环境配置方法

uni-app网友经验分享:https://ask.dcloud.net.cn/article/36103

5 关注 分享
蔡繁荣 lostyouth 我勒个去 BirdZhang 青海的蓝

要回复文章请先登录注册

l***@163.com

l***@163.com

安卓呢
2024-07-31 17:40
g***@163.com

g***@163.com

回复 1***@qq.com :
我也遇到这个问题了,请问下你解决了吗?
2024-07-31 16:04
1***@qq.com

1***@qq.com

iconfile自定义图片,不生效,打包后,快捷菜单的图标是一个黑点。请问怎么解决啊?
2023-07-11 16:19
g***@gmail.com

g***@gmail.com

Perangkat saya android
2023-01-01 08:42
未设置昵称

未设置昵称

shortcuts多语言配置无效
2022-12-31 15:57
CLP

CLP

回复 l***@163.com :
https://ask.dcloud.net.cn/article/64
https://ask.dcloud.net.cn/question/95040
2020-05-27 16:14
l***@163.com

l***@163.com

我手机型号:iPhone X ;

console.log('Shortcut-plus.runtime.launcher: ' + plus.runtime.launcher);
if (plus.runtime.launcher == 'shortcut') {
// 做想做的事
}

为啥 plus.runtime.launcher 得到的值是default,而不是 shortcut;

而且 console.log('Shortcut-plus.runtime.arguments: ' + plus.runtime.arguments); 得到的是 {"name":"","path":"","query":"","id":0}

大佬看下
2020-05-22 17:10
l***@163.com

l***@163.com

iPhone X 3D Touch plus.runtime.launcher 值为default,这个该怎么操作
2020-05-22 14:24
萌折

萌折

先标注一下,以后用得着
2020-03-01 11:01
孙悟爽

孙悟爽

支持安卓了吗?
2019-12-24 17:02