45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
function initPushNotification() {
|
|
// 仅 App 端
|
|
if (typeof plus !== 'undefined' && plus.push) {
|
|
plus.globalEvent.addEventListener('newPath', ({ path }) => {
|
|
if (!path) {
|
|
return;
|
|
}
|
|
// 指定的页面为当前页面
|
|
const pages = getCurrentPages();
|
|
const currentPage = pages[pages.length - 1];
|
|
if (currentPage &&
|
|
currentPage.$page &&
|
|
currentPage.$page.fullPath === path) {
|
|
return;
|
|
}
|
|
// 简单起见,先尝试 navigateTo 跳转,失败后,再尝试 tabBar 跳转
|
|
uni.navigateTo({
|
|
url: path,
|
|
fail(res) {
|
|
if (res.errMsg.indexOf('tabbar') > -1) {
|
|
uni.switchTab({
|
|
url: path,
|
|
fail(res) {
|
|
console.error(res.errMsg);
|
|
},
|
|
});
|
|
}
|
|
else {
|
|
console.error(res.errMsg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
// @ts-expect-error
|
|
uni.invokePushCallback({
|
|
type: 'enabled',
|
|
offline: true,
|
|
});
|
|
Promise.resolve().then(() => {
|
|
initPushNotification();
|
|
});
|