关于小程序分享到朋友圈打开空白问题的解决方案
发布于 4 年前 作者 hmeng 1083 次浏览 来自 分享

原因就是对应接口已被屏蔽,但使用的方法依然去做了轮训和引用。

直接说解决方法:

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])))}})))

基本按以上方式可以解决空白问题,不同第三方框架在编译后的代码有不同,但可以对比按此方式修改。

1 回复
回到顶部