XZH-Shortcut - 更新日志
2.0.1(2021-01-12)
妈呀!又挖了一个坑。js h5+ 模式的图标设置失败,我居然没发现。我真是个挖坑小能手,我已从新上传了
如果不想下载了,可以更具下面代码你们自己替换下吧!
打开 shortcuts.js
替换成
const Build = plus.android.importClass("android.os.Build");
function addShortcuts(main, shortcuts) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
const shortcutManager = main.getSystemService(plus.android.getAttribute( main, 'SHORTCUT_SERVICE' ));
try {
const shortcutInfoList = plus.android.newObject('java.util.ArrayList');
shortcuts.forEach((item) => {
const intent = plus.android.newObject('android.content.Intent', 'io.dcloud.PandoraEntry');
plus.android.invoke(intent, 'setClassName', main, "io.dcloud.PandoraEntryActivity");
plus.android.invoke(intent, 'setFlags', plus.android.getAttribute(intent, 'FLAG_ACTIVITY_NEW_TASK'));
plus.android.invoke(intent, 'putExtra', 'path', item.path);
const shortcut = plus.android.newObject( "android.content.pm.ShortcutInfo$Builder", main, item.id);
const bitmap = plus.android.invoke('android.graphics.BitmapFactory', 'decodeFile', item.icon);
const icon = plus.android.invoke('android.graphics.drawable.Icon', 'createWithBitmap', bitmap);
plus.android.invoke(shortcut, 'setShortLabel', item.shortLabel || item.title);
plus.android.invoke(shortcut, 'setLongLabel', item.title);
plus.android.invoke(shortcut, 'setIntent', intent);
plus.android.invoke(shortcut, 'setIcon', icon);
plus.android.invoke(shortcutInfoList, 'add', plus.android.invoke(shortcut, 'build'));
})
return plus.android.invoke(shortcutManager, 'setDynamicShortcuts', shortcutInfoList);
} catch (e) {
console.log(e);
return false;
}
}
return false;
}
function removeAll(main) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
const shortcutManager = main.getSystemService(plus.android.getAttribute( main, 'SHORTCUT_SERVICE' ));
return plus.android.invoke(shortcutManager, 'removeAllDynamicShortcuts');
}
}
export { addShortcuts, removeAll };
再把 icon 修改的路径格式为 plus.io.convertLocalFileSystemURL( '/static/logo.png' )
这种格式
let res = addShortcuts(this.main, [{
id: 'test',
// 原来是这样的,现在要替换成下面那种格式
// icon: `file://${plus.io.convertLocalFileSystemURL( '/static/logo.png' )}`,
// 这个才是正确的格式 plus.io.convertLocalFileSystemURL( '/static/logo.png' )
icon: plus.io.convertLocalFileSystemURL( '/static/logo.png' ),
path: 'pages/test/test',
shortLabel: '',
title: 'test页'
}]);
2.0.0(2021-01-12)
增加使用 js h5+ 创建模式,这样就可以不用使用原生插件了。
使用 js h5+ 模式的插件包体积可以小一点,还不用打自定义基座更方便
1.0.1(2020-11-17)
修复页面跳转的 BUG
1.0.0(2020-11-11)
1.0.0
创建 Shortcuts 移除 Shortcuts