uni-push.plus.es.js 2.2 KB
Newer Older
fxy060608's avatar
fxy060608 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
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);
                    }
                },
            });
        });
        plus.push.addEventListener('click', (result) => {
            // @ts-expect-error
            uni.invokePushCallback({
                type: 'click',
                message: result,
            });
        });
        uni.onPushMessage((res) => {
            if (res.type === 'receive' &&
                res.data &&
                res.data.force_notification) {
                // 创建通知栏
                uni.createPushMessage(res.data);
                res.stopped = true;
            }
        });
    }
}

fxy060608's avatar
fxy060608 已提交
53 54 55
// @ts-expect-error
uni.invokePushCallback({
    type: 'enabled',
fxy060608's avatar
fxy060608 已提交
56
    offline: true,
fxy060608's avatar
fxy060608 已提交
57
});
fxy060608's avatar
fxy060608 已提交
58
Promise.resolve().then(() => {
fxy060608's avatar
fxy060608 已提交
59
    initPushNotification();
fxy060608's avatar
fxy060608 已提交
60
    plus.push.setAutoNotification && plus.push.setAutoNotification(false);
fxy060608's avatar
fxy060608 已提交
61 62 63 64 65 66 67 68
    plus.push.addEventListener('receive', (result) => {
        // @ts-expect-error
        uni.invokePushCallback({
            type: 'pushMsg',
            message: result,
        });
    });
});