提交 40c50f15 编写于 作者: fxy060608's avatar fxy060608

refactor: uni-push

上级 2705b4f6
......@@ -4,6 +4,7 @@ import { getApiCallbacks } from '../../helpers/api/callback'
interface OnPushCidCallback {
type: 'clientId'
cid: string
errMsg?: string
}
interface OnPushLineStateCallback {
......@@ -16,20 +17,41 @@ interface OnPushMsgCallback {
message: unknown
}
let cid: string = ''
interface OnPushClickCallback {
type: 'click'
message: unknown
}
let cid: string | undefined
let cidErrMsg: string | undefined
function normalizePushMessage(message: unknown) {
try {
return JSON.parse(message as string)
} catch (e: any) {}
return message
}
/**
* @private
* @param args
*/
export function invokePushCallback(
args: OnPushCidCallback | OnPushLineStateCallback | OnPushMsgCallback
args:
| OnPushCidCallback
| OnPushLineStateCallback
| OnPushMsgCallback
| OnPushClickCallback
) {
if (args.type === 'clientId') {
cid = args.cid
invokeGetPushCidCallbacks(cid)
cidErrMsg = args.errMsg
invokeGetPushCidCallbacks(cid, args.errMsg)
} else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message })
callback({ type: 'receive', data: normalizePushMessage(args.message) })
})
} else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) })
})
}
}
......@@ -38,11 +60,11 @@ interface GetPushCidOptions {
success?: OnPushMessageSuccess
}
const getPushCidCallbacks: ((cid?: string) => void)[] = []
const getPushCidCallbacks: ((cid?: string, errMsg?: string) => void)[] = []
function invokeGetPushCidCallbacks(cid?: string) {
function invokeGetPushCidCallbacks(cid?: string, errMsg?: string) {
getPushCidCallbacks.forEach((callback) => {
callback(cid)
callback(cid, errMsg)
})
getPushCidCallbacks.length = 0
}
......@@ -55,23 +77,24 @@ export function getPushCid(args: GetPushCidOptions) {
const hasSuccess = isFunction(success)
const hasFail = isFunction(fail)
const hasComplete = isFunction(complete)
getPushCidCallbacks.push((cid?: string) => {
getPushCidCallbacks.push((cid?: string, errMsg?: string) => {
let res: Record<string, unknown>
if (cid) {
res = { errMsg: 'getPushCid:ok', cid }
hasSuccess && success(res)
} else {
res = { errMsg: 'getPushCid:fail' }
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') }
hasFail && fail(res)
}
hasComplete && complete(res)
})
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid))
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg))
}
}
interface OnPushMessageSuccess {
type: 'click' | 'receive'
data: unknown
}
......
......@@ -11808,7 +11808,15 @@ var serviceContext = (function (vue) {
return getLaunchOptions();
});
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -11816,18 +11824,23 @@ var serviceContext = (function (vue) {
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -11839,20 +11852,21 @@ var serviceContext = (function (vue) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
......@@ -66,19 +66,21 @@ export function getUniStatistics(inputDir: string, platform: UniApp.PLATFORM) {
)
}
export function getUniPush(inputDir: string, platform: UniApp.PLATFORM) {
export function isEnableUniPushV2(inputDir: string, platform: UniApp.PLATFORM) {
const manifest = parseManifestJsonOnce(inputDir)
return extend(
{},
manifest.unipush,
manifest[platform] && manifest[platform].unipush
)
if (platform === 'app') {
return (
manifest['app-plus']?.distribute?.sdkConfigs?.push?.unipush?.version ==
'2'
)
}
return manifest[platform]?.unipush?.enable === true
}
export function isUniPushOffline(inputDir: string) {
const manifest = parseManifestJsonOnce(inputDir)
return (
manifest?.['app-plus']?.distribute?.sdkConfigs?.push?.unipush?.enable ===
manifest['app-plus']?.distribute?.sdkConfigs?.push?.unipush?.offline ===
true
)
}
......
......@@ -4551,21 +4551,34 @@ const API_GET_LAUNCH_OPTIONS_SYNC = "getLaunchOptionsSync";
const getLaunchOptionsSync = /* @__PURE__ */ defineSyncApi(API_GET_LAUNCH_OPTIONS_SYNC, () => {
return getLaunchOptions();
});
let cid = "";
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
} catch (e2) {
}
return message;
}
function invokePushCallback(args) {
if (args.type === "clientId") {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
cidErrMsg = args.errMsg;
invokeGetPushCidCallbacks(cid, args.errMsg);
} else if (args.type === "pushMsg") {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: "receive", data: normalizePushMessage(args.message) });
});
} else if (args.type === "click") {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: "click", data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid2) {
function invokeGetPushCidCallbacks(cid2, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid2);
callback(cid2, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -4577,19 +4590,19 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid2) => {
getPushCidCallbacks.push((cid2, errMsg) => {
let res;
if (cid2) {
res = { errMsg: "getPushCid:ok", cid: cid2 };
hasSuccess && success(res);
} else {
res = { errMsg: "getPushCid:fail" };
res = { errMsg: "getPushCid:fail" + (errMsg ? " " + errMsg : "") };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== "undefined") {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
......@@ -605,7 +605,15 @@ const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
emitter.emit(name, ...args);
}, EmitProtocol);
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -613,18 +621,23 @@ let cid = '';
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -636,20 +649,21 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
......@@ -605,7 +605,15 @@ const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
emitter.emit(name, ...args);
}, EmitProtocol);
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -613,18 +621,23 @@ let cid = '';
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -636,20 +649,21 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
......@@ -605,7 +605,15 @@ const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
emitter.emit(name, ...args);
}, EmitProtocol);
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -613,18 +621,23 @@ let cid = '';
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -636,20 +649,21 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
......@@ -605,7 +605,15 @@ const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
emitter.emit(name, ...args);
}, EmitProtocol);
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -613,18 +621,23 @@ let cid = '';
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -636,20 +649,21 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
......@@ -605,7 +605,15 @@ const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
emitter.emit(name, ...args);
}, EmitProtocol);
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -613,18 +621,23 @@ let cid = '';
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -636,20 +649,21 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
......@@ -605,7 +605,15 @@ const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
emitter.emit(name, ...args);
}, EmitProtocol);
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -613,18 +621,23 @@ let cid = '';
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -636,20 +649,21 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
......@@ -569,7 +569,15 @@ const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
emitter.emit(name, ...args);
}, EmitProtocol);
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -577,18 +585,23 @@ let cid = '';
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -600,20 +613,21 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -7,6 +7,13 @@ Promise.resolve().then(() => {
cid: info.clientid,
});
}
plus.push.addEventListener('click', (result) => {
// @ts-expect-error
uni.invokePushCallback({
type: 'click',
message: result,
});
});
plus.push.addEventListener('receive', (result) => {
// @ts-expect-error
uni.invokePushCallback({
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -23,21 +23,18 @@ var index = () => [
}
const inputDir = process.env.UNI_INPUT_DIR;
const platform = process.env.UNI_PLATFORM;
isOffline = platform === 'app' && uniCliShared.isUniPushOffline(inputDir);
if (isOffline) {
isEnable = true;
isEnable = uniCliShared.isEnableUniPushV2(inputDir, platform);
if (!isEnable) {
return;
}
const { appid, enable, debug } = uniCliShared.getUniPush(inputDir, platform);
isEnable = appid && enable === true;
if (!isEnable) {
isOffline = platform === 'app' && uniCliShared.isUniPushOffline(inputDir);
if (isOffline) {
return;
}
debugPush('appid', appid, 'deubg', debug);
debugPush('deubg', debug__default["default"]);
return {
define: {
'process.env.UNI_PUSH_APP_ID': JSON.stringify(appid),
'process.env.UNI_PUSH_DEBUG': !!debug,
'process.env.UNI_PUSH_DEBUG': !!debug__default["default"],
},
};
},
......
......@@ -4,27 +4,39 @@ if (process.env.UNI_PUSH_DEBUG) {
GtPush.setDebugMode(true)
}
GtPush.init({
appid: process.env.UNI_PUSH_APP_ID!,
onClientId: (res) => {
const appid = process.env.UNI_APP_ID!
if (!appid) {
Promise.resolve().then(() => {
// @ts-expect-error
uni.invokePushCallback({
type: 'clientId',
cid: res.cid,
cid: '',
errMsg: 'manifest.json->appid is required',
})
},
onlineState: (res) => {
// @ts-expect-error
uni.invokePushCallback({
type: 'lineState',
online: res.online,
})
},
onPushMsg: (res) => {
// @ts-expect-error
uni.invokePushCallback({
type: 'pushMsg',
message: res.message,
})
},
})
})
} else {
GtPush.init({
appid,
onClientId: (res) => {
// @ts-expect-error
uni.invokePushCallback({
type: 'clientId',
cid: res.cid,
})
},
onlineState: (res) => {
// @ts-expect-error
uni.invokePushCallback({
type: 'lineState',
online: res.online,
})
},
onPushMsg: (res) => {
// @ts-expect-error
uni.invokePushCallback({
type: 'pushMsg',
message: res.message,
})
},
})
}
......@@ -3,7 +3,7 @@ import debug from 'debug'
import {
defineUniMainJsPlugin,
isSsr,
getUniPush,
isEnableUniPushV2,
isUniPushOffline,
resolveBuiltIn,
} from '@dcloudio/uni-cli-shared'
......@@ -22,20 +22,17 @@ export default () => [
}
const inputDir = process.env.UNI_INPUT_DIR!
const platform = process.env.UNI_PLATFORM!
isOffline = platform === 'app' && isUniPushOffline(inputDir)
if (isOffline) {
isEnable = true
isEnable = isEnableUniPushV2(inputDir, platform)
if (!isEnable) {
return
}
const { appid, enable, debug } = getUniPush(inputDir, platform)
isEnable = appid && enable === true
if (!isEnable) {
isOffline = platform === 'app' && isUniPushOffline(inputDir)
if (isOffline) {
return
}
debugPush('appid', appid, 'deubg', debug)
debugPush('deubg', debug)
return {
define: {
'process.env.UNI_PUSH_APP_ID': JSON.stringify(appid),
'process.env.UNI_PUSH_DEBUG': !!debug,
},
}
......
......@@ -7,6 +7,13 @@ Promise.resolve().then(() => {
cid: info.clientid,
})
}
plus.push.addEventListener('click', (result) => {
// @ts-expect-error
uni.invokePushCallback({
type: 'click',
message: result,
})
})
plus.push.addEventListener('receive', (result) => {
// @ts-expect-error
uni.invokePushCallback({
......
......@@ -605,7 +605,15 @@ const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
emitter.emit(name, ...args);
}, EmitProtocol);
let cid = '';
let cid;
let cidErrMsg;
function normalizePushMessage(message) {
try {
return JSON.parse(message);
}
catch (e) { }
return message;
}
/**
* @private
* @param args
......@@ -613,18 +621,23 @@ let cid = '';
function invokePushCallback(args) {
if (args.type === 'clientId') {
cid = args.cid;
invokeGetPushCidCallbacks(cid);
invokeGetPushCidCallbacks(cid, args.errMsg);
}
else if (args.type === 'pushMsg') {
onPushMessageCallbacks.forEach((callback) => {
callback({ data: args.message });
callback({ type: 'receive', data: normalizePushMessage(args.message) });
});
}
else if (args.type === 'click') {
onPushMessageCallbacks.forEach((callback) => {
callback({ type: 'click', data: normalizePushMessage(args.message) });
});
}
}
const getPushCidCallbacks = [];
function invokeGetPushCidCallbacks(cid) {
function invokeGetPushCidCallbacks(cid, errMsg) {
getPushCidCallbacks.forEach((callback) => {
callback(cid);
callback(cid, errMsg);
});
getPushCidCallbacks.length = 0;
}
......@@ -636,20 +649,21 @@ function getPushCid(args) {
const hasSuccess = isFunction(success);
const hasFail = isFunction(fail);
const hasComplete = isFunction(complete);
getPushCidCallbacks.push((cid) => {
getPushCidCallbacks.push((cid, errMsg) => {
let res;
if (cid) {
res = { errMsg: 'getPushCid:ok', cid };
hasSuccess && success(res);
}
else {
res = { errMsg: 'getPushCid:fail' };
cidErrMsg = errMsg;
res = { errMsg: 'getPushCid:fail' + (errMsg ? ' ' + errMsg : '') };
hasFail && fail(res);
}
hasComplete && complete(res);
});
if (cid) {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid));
if (typeof cid !== 'undefined') {
Promise.resolve().then(() => invokeGetPushCidCallbacks(cid, cidErrMsg));
}
}
const onPushMessageCallbacks = [];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册