如题,在使用推送时有些好奇这个 uni.getProvider获取推送消息的服务供应商是怎么个机制?
我找了下生成的本地 app 包原文件
if (typeof Proxy !== 'undefined') {
uni = new Proxy({}, {
get: function get(target, name) {
if (name === 'os') {
return {
nvue: true };
}
if (name === 'postMessage') {
return postMessage;
}
if (name === 'requireNativePlugin') {
return requireNativePlugin;
}
if (name === 'onNavigationBarButtonTap') {
return onNavigationBarButtonTap;
}
var method = api[name];
if (!method) {
method = createPublish(name);
}
if (shouldPromise(name)) {
return promisify(method);
}
return method;
} });
} else {
__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys___default()(baseUni).forEach(function (key) {
uni[key] = baseUni[key];
});
uni.postMessage = postMessage;
uni.requireNativePlugin = requireNativePlugin;
__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys___default()(wx).forEach(function (name) {
var method = api[name];
if (!method) {
method = createPublish(name);
}
if (shouldPromise(name)) {
uni[name] = promisify(method);
} else {
uni[name] = method;
}
});
}
继续找下去也不知道咋找
iOS 原生部分智能在 H5P.IOS 中找到相关的源码 libpush的原文件 类的继承 等
希望官方人员有时间可以给予解答一下 供应商列表是如何来的。然后如果要增加供应商要如何办?
3 个回复
7***@qq.com - IT man
抱抱你等你呢
7***@qq.com - IT man
以后回到家
DCloud_heavensoft
在manifest里配置,选择模块,打包后生效
hainuo (作者)
也就是说添加了模块才会加入到服务商列表中是吧
2019-01-01 15:59
1***@qq.com
回复 hainuo:至少我试了是这样的,在自定义基座(未配置各个服务商登录的ID情况下),获取为空,使用标准基座,则能获取得到服务商(这一点官方文档未说明!)
2019-03-28 15:37
DCloud_heavensoft
回复 1***@qq.com:标准基座是DCloud的包名,DCloud已经申请过各个服务器的appkey了。你换包名当然会有问题
2019-03-29 04:53
慕容雪
回复 1***@qq.com: 同意,运行到标准基座没问题,自定义基座就不能获取到服务商
2019-06-26 16:48