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);
});
开始时觉得华为手机的问题,然后使用微信小程序定制桌面快捷,没有问题,说明华为可以定制桌面快捷。
检查步骤
- 检查应用权限,已经打开了“创建桌面快捷方式”为”允许“。
- 打基座包时,已经添加了
"distribute" : {
"android" : [{
.......
"permissions" : ["<uses-permission android:name=\"com.android.launcher.permission.INSTALL_SHORTCUT\"/>"]
- 使用 plus.navigator.checkPermission(‘SHORTCUT’) 检查,一直返回的是 unknown
不知道是什么原因导致的。
更多关于uni-app中plus.navigator.createShortcut在华为手机调用后一直不成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好,问题解决了吗
更多关于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,通常是由于以下原因:
-
权限声明问题:虽然你在
manifest.json中配置了权限,但需要确保权限字符串格式正确。建议使用:"permissions": [ "<uses-permission android:name=\"com.android.launcher.permission.INSTALL_SHORTCUT\"/>" ]同时检查是否遗漏了其他必要权限,如
READ_EXTERNAL_STORAGE(用于读取图标文件)。 -
华为系统限制:部分华为机型(尤其是 EMUI 9 及以上版本)对创建快捷方式有系统级限制,可能需用户手动在“设置-应用-权限”中开启“创建桌面快捷方式”权限。即使已开启,系统仍可能拦截。
-
图标路径问题:
icon路径需确保在应用运行时可访问。建议使用绝对路径(如/static/icon.png)或通过plus.io.convertLocalFileSystemURL转换本地路径。 -
兼容性处理:可先通过
plus.os.name判断是否为华为设备,并尝试引导用户手动创建快捷方式。例如:if (plus.os.vendor === 'huawei') { // 提示用户手动长按应用图标创建快捷方式 }


