uni-app中plus.navigator.createShortcut在华为手机调用后一直不成功

uni-app中plus.navigator.createShortcut在华为手机调用后一直不成功

问题描述

安卓版 uniapp 使用下面的方法写了,但是总是返回 {"sure":false}

plus.navigator.createShortcut({
name: "我是AppName",
icon: "_www/images/icon/icon_logo.png",
toast: "已创建快捷方式到桌面"
}, function(e){
console.log("A=",e);   // {"sure":false}
}, function(e){
console.log("B=",e);
console.log("C=",e.message);
});

开始时觉得华为手机的问题,然后使用微信小程序定制桌面快捷,没有问题,说明华为可以定制桌面快捷。

检查步骤

  1. 检查应用权限,已经打开了“创建桌面快捷方式”为”允许“。
  2. 打基座包时,已经添加了
"distribute" : {
"android" : [{
.......
"permissions" : ["<uses-permission android:name=\"com.android.launcher.permission.INSTALL_SHORTCUT\"/>"]
  1. 使用 plus.navigator.checkPermission(‘SHORTCUT’) 检查,一直返回的是 unknown

不知道是什么原因导致的。


更多关于uni-app中plus.navigator.createShortcut在华为手机调用后一直不成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

你好,问题解决了吗

更多关于uni-app中plus.navigator.createShortcut在华为手机调用后一直不成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html


您的解决了没?

我也遇到过这个问题,小米手机,权限已经设置了的。微信的行,我的不行。为啥呢?

有没有解决的呢

请问你这边解决了吗?

{“granted”: [“com.android.launcher.permission.INSTALL_SHORTCUT”], “deniedPresent”: [], “deniedAlways”: []}

HX3.4.0+已修复该问题

https://ask.dcloud.net.cn/question/141882 可以看看这个问题吗? ios 15.3.1,出现兼容问题

在华为手机上,plus.navigator.createShortcut 返回 {"sure":false} 且权限检查为 unknown,通常是由于以下原因:

  1. 权限声明问题:虽然你在 manifest.json 中配置了权限,但需要确保权限字符串格式正确。建议使用:

    "permissions": [
      "<uses-permission android:name=\"com.android.launcher.permission.INSTALL_SHORTCUT\"/>"
    ]
    

    同时检查是否遗漏了其他必要权限,如 READ_EXTERNAL_STORAGE(用于读取图标文件)。

  2. 华为系统限制:部分华为机型(尤其是 EMUI 9 及以上版本)对创建快捷方式有系统级限制,可能需用户手动在“设置-应用-权限”中开启“创建桌面快捷方式”权限。即使已开启,系统仍可能拦截。

  3. 图标路径问题icon 路径需确保在应用运行时可访问。建议使用绝对路径(如 /static/icon.png)或通过 plus.io.convertLocalFileSystemURL 转换本地路径。

  4. 兼容性处理:可先通过 plus.os.name 判断是否为华为设备,并尝试引导用户手动创建快捷方式。例如:

    if (plus.os.vendor === 'huawei') {
      // 提示用户手动长按应用图标创建快捷方式
    }
回到顶部