欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - 微信,收货地址共享,疑似bug?

程序员文章站 2022-04-18 12:35:36
...
我尝试通过wxjsbridge方式调用editAddress接口。在ios设备上遇到了一个疑似bug。代码如下:
WeixinJSBridge.invoke('editAddress', {
            appId: "******",
            scope: "jsapi_address",
            signType: "sha1",
            addrSign: "*******",
            timeStamp: "1457939672",
            nonceStr: "123456"
        }, function (res) {
            alert('123');
            alert(res.err_msg);
//若res 中所带的返回值不为空,则表示用户选择该返回值作为收货地址。
//否则若返回空,则表示用户取消了这一次编辑收货地址。
            document.form1.address1.value = res.proviceFirstStageName;
            document.form1.address2.value = res.addressCitySecondStageName;
            document.form1.address3.value = res.addressCountiesThirdStageName;
            document.form1.detail.value = res.addressDetailInfo;
            document.form1.phone.value = res.telNumber;
        });

代码执行无问题。问题出现在,在打开微信收货地址页面后,若不点击[确定]或者[返回]任意一个,而是使用iphone的左滑手势操作,会返回至公众号页面,此时返回事件无法被js代码所捕获。并且再次刷新页面时,再也无法通过invoke那一句代码进入微信的收货地址选择页面。


补充:实验得出这个问题的修复行为是:

  1. 强制重启微信

  2. 手动进入微信的[我的收货地址]菜单,执行一次左滑返回手势操作,这时再进入页面,收货地址又可以调出了。


目前对于这个行为不是很理解,是有某个事件我没监听,还是微信收货地址共享本身存在这个bug?

回复内容:

我尝试通过wxjsbridge方式调用editAddress接口。在ios设备上遇到了一个疑似bug。代码如下:

WeixinJSBridge.invoke('editAddress', {
            appId: "******",
            scope: "jsapi_address",
            signType: "sha1",
            addrSign: "*******",
            timeStamp: "1457939672",
            nonceStr: "123456"
        }, function (res) {
            alert('123');
            alert(res.err_msg);
//若res 中所带的返回值不为空,则表示用户选择该返回值作为收货地址。
//否则若返回空,则表示用户取消了这一次编辑收货地址。
            document.form1.address1.value = res.proviceFirstStageName;
            document.form1.address2.value = res.addressCitySecondStageName;
            document.form1.address3.value = res.addressCountiesThirdStageName;
            document.form1.detail.value = res.addressDetailInfo;
            document.form1.phone.value = res.telNumber;
        });

代码执行无问题。问题出现在,在打开微信收货地址页面后,若不点击[确定]或者[返回]任意一个,而是使用iphone的左滑手势操作,会返回至公众号页面,此时返回事件无法被js代码所捕获。并且再次刷新页面时,再也无法通过invoke那一句代码进入微信的收货地址选择页面。


补充:实验得出这个问题的修复行为是:

  1. 强制重启微信

  2. 手动进入微信的[我的收货地址]菜单,执行一次左滑返回手势操作,这时再进入页面,收货地址又可以调出了。


目前对于这个行为不是很理解,是有某个事件我没监听,还是微信收货地址共享本身存在这个bug?