更新记录

1.0.1(2022-09-29)

增加iOS图标设置

1.0.0(2022-09-27)

shortcut原生组件首次发布


平台兼容性

Android Android CPU类型 iOS
适用版本区间:7.1 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


插件api

方法

  • set(list)

设置shortcut

list参数说明:

参数名称 类型 必填 说明
id string true 唯一标识
iconName string false 图标
shortLabel/longLabel string true 名称
content string true 自定义内容

iconName参数说明:

  1. Android:将图片放在项目static目录下,填写icon完整路径加扩展名

    iconName.png

  2. iOS:目前仅支持系统内置图标样式

iconName取值范围如下表:

iconName 说明 iconName 说明 iconName 说明 iconName 说明
compose iconName.png play iconName.png pause iconName.png add iconName.png
location iconName.png search iconName.png share iconName.png prohibit iconName.png
contact iconName.png home iconName.png markLocation iconName.png favorite iconName.png
love iconName.png cloud iconName.png invitation iconName.png confirmation iconName.png
mail iconName.png message iconName.png date iconName.png time iconName.png
capturePhoto iconName.png captureVideo iconName.png task iconName.png taskCompleted iconName.png
alarm iconName.png bookmark iconName.png shuffle iconName.png audio iconName.png update iconName.png

shortLabel/longLabel参数说明:

  1. Android:

    longLabel是长按app图标弹框显示的名称。

    android_longlabel.png

    shortLabel为shortcut添加至桌面显示的名称。

    android_shortlabel.png

  2. iOS:shortLabel为shortcut名称,longLabel为shortcut描述(可不设置)

    iosLabel.png

示例代码

shortcut.set([
    {
        id: 'demo1',
        iconName: '/static/logo.png',//Android设置方式
        iconName: 'play',//iOS设置方式
        shortLabel: '短标签',
        longLabel: '长标签',
        content: 'target'
    },
    {
        id: 'demo2',
        iconName: '/static/push.png',//Android设置方式
        iconName: 'pause',//iOS设置方式
        shortLabel: '扫一扫(修改)',
        longLabel: '打开扫一扫页面(修改)',
        content: 'scan'
    },
]);
  • get()

获取已设置的shortcut列表

返回结果参数说明:

参数名称 类型 必填 说明
id string true 唯一标识
content string true 自定义内容

示例代码:

var shortcutList = shortcut.get();
console.log('shortcuts:' + JSON.stringify(shortcutList))
  • getContent()

获取用户点击的shortcut自定义的content内容

返回结果说明:

类型 说明
string 自定义的content内容

示例代码:

var content = shortcut.getContent();
console.log(content)
  • finished()

处理完逻辑记得调用finished,移除content,避免重复获取

示例代码:

shortcut.finished();

使用demo

设置shortcut

<template>
    <view>
        <button type="default" @click="add">添加shortcut</button>
        <button type="default" @click="del">删除其中一个shortcut</button>
        <button type="default" @click="delAll">删除所有shortcut</button>
        <button type="default" @click="update">更新shortcut</button>
        <button type="default" @click="get">获取所有shortcut</button>
    </view>
</template>

<script>
    const shortcut = uni.requireNativePlugin('rt-shortcut');
    export default {
        data() {
            return {

            }
        },
        onLoad: () => {

        },
        methods: {
            add() {
                shortcut.set([
                    {
                        id: 'demo1',
                        iconName: '/static/logo.png',
                        shortLabel: '短标签',
                        longLabel: '长标签',
                        content: 'target'
                    },
                    {
                        id: 'demo2',
                        iconName: '/static/push.png',
                        shortLabel: '扫一扫',
                        longLabel: '打开扫一扫页面',
                        content: 'scan'
                    },
                ]);
            },
            del() {
                shortcut.set([
                    {
                        id: 'demo1',
                        iconName: '/static/logo.png',
                        shortLabel: '短标签',
                        longLabel: '长标签',
                        content: 'target'
                    }
                ]);
            },
            delAll() {
                shortcut.set([]);
            },
            update() {
                shortcut.set([
                    {
                        id: 'demo1',
                        iconName: '/static/logo.png',
                        shortLabel: '短标签',
                        longLabel: '长标签',
                        content: 'target'
                    },
                    {
                        id: 'demo2',
                        iconName: '/static/push.png',
                        shortLabel: '扫一扫(修改)',
                        longLabel: '打开扫一扫页面(修改)',
                        content: 'scan'
                    },
                ]);
            },
            get() {
                var shortcutList = shortcut.get();
                console.log('shortcuts:' + JSON.stringify(shortcutList))
                uni.showModal({
                    title:'Shortcuts',
                    content: JSON.stringify(shortcutList)
                })
            }
        }
    }
</script>

监听用户点击shortcut事件

在App.vue中处理该逻辑

<script>
    export default {
        onLaunch: function() {
            console.log('App Launch')
        },
        onShow: function() {
            console.log('App Show')
            const shortcut = uni.requireNativePlugin('rt-shortcut');
            var content = shortcut.getContent();
            console.log('------------------' + content + '------------------')
            if(content == 'target') {
                uni.navigateTo({
                    url:'/pages/target/target',
                    complete: (res) => {
                        shortcut.finished();//处理完逻辑记得调用finished,移除content
                    }
                })
            } else if(content == 'scan') {
                uni.navigateTo({
                    url:'/pages/scan/scan',
                    complete: (res) => {
                        shortcut.finished();
                    }
                })
            }

        },
        onHide: function() {
            console.log('App Hide')
        }
    }
</script>

注意事项

  1. 原生插件需要自定义基座才能生效。
  2. 自定义基座时记得在manifest.json->app原生插件配置,勾选需要使用的的插件。
  3. 购买前请先将示例项目导入HBuilderX试用该插件。
  4. 插件永久维护,欢迎提新需求。

联系方式

QQ:2219424245

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问