关于小程序分享到朋友圈打开空白问题的解决方案
原因就是对应接口已被屏蔽,但使用的方法依然去做了轮训和引用。
直接说解决方法:
1、如果使用了promisifyAll方法,可以找到miniprogram-api-promise/promise.js,找到相应代码修改如下:
export function promisifyAll(wx = {}, wxp = {}) {
Object.keys(wx).forEach(key => {
if (key !== "shareImageMessage") {
const fn = wx[key];
if (typeof fn === 'function' && asyncMethods.indexOf(key) >= 0) {
wxp[key] = args => {
if (hasCallback(args)) {
fn(args);
} else {
return _promisify(fn)(args);
}
};
} else {
wxp[key] = fn;
}
}
});
}
2、如果使用了第三方框架,可以在编译后的代码中,搜索 Object.keys(wx),并增加对shareImageMessage接口的判断条件,比如:
Object.keys(wx).forEach((function(e){(A(wx,e)||A(fe,e))&&(Cn[e]=oe(e,we(e,wx[e])))})))
可以替换为
Object.keys(wx).forEach((function(e){if(e!=="shareImageMessage"){(A(wx,e)||A(fe,e))&&(Cn[e]=oe(e,we(e,wx[e])))}})))
基本按以上方式可以解决空白问题,不同第三方框架在编译后的代码有不同,但可以对比按此方式修改。