提交 00ee5811 编写于 作者: fxy060608's avatar fxy060608

refactor(push): getPushClientId

上级 55c673a7
......@@ -103,6 +103,36 @@ var GtPush = /*@__PURE__*/getDefaultExportFromCjs(gtpushMin);
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({
......@@ -141,7 +171,9 @@ if (!appid) {
});
}
else {
// #ifdef APP
initPushNotification();
// #endif
GtPush.init({
appid,
onError: (res) => {
......
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;
}
});
}
}
// @ts-expect-error
uni.invokePushCallback({
type: 'enabled',
offline: true,
});
Promise.resolve().then(() => {
initPushNotification();
plus.push.setAutoNotification && plus.push.setAutoNotification(false);
plus.push.addEventListener('click', (result) => {
// @ts-expect-error
uni.invokePushCallback({
type: 'click',
message: result,
});
});
plus.push.addEventListener('receive', (result) => {
// @ts-expect-error
uni.invokePushCallback({
......
......@@ -9,6 +9,7 @@ import {
let cid
let cidErrMsg
let enabled
let offline
function normalizePushMessage (message) {
try {
......@@ -22,6 +23,9 @@ export function invokePushCallback (
) {
if (args.type === 'enabled') {
enabled = true
if (__PLATFORM__ === 'app') {
offline = args.offline
}
} else if (args.type === 'clientId') {
cid = args.cid
cidErrMsg = args.errMsg
......@@ -70,11 +74,34 @@ export function getPushClientId (args) {
const hasSuccess = isFn(success)
const hasFail = isFn(fail)
const hasComplete = isFn(complete)
// App 端且启用离线时,使用 getClientInfoAsync 来调用
if (__PLATFORM__ === 'app' && offline) {
plus.push.getClientInfoAsync(
(info) => {
const res = {
errMsg: 'getPushClientId:ok',
cid
}
hasSuccess && success(res)
hasComplete && complete(res)
},
(res) => {
res = {
errMsg: 'getPushClientId:fail ' + (res.code + ': ' + res.message)
}
hasFail && fail(res)
hasComplete && complete(res)
}
)
return
}
Promise.resolve().then(() => {
if (typeof enabled === 'undefined') {
enabled = false
cid = ''
cidErrMsg = 'unipush is not enabled'
cidErrMsg = 'uniPush is not enabled'
}
getPushCidCallbacks.push((cid, errMsg) => {
let res
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册