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

refactor(push): getPushClientId

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