我尝试通过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那一句代码进入微信的收货地址选择页面。
补充:实验得出这个问题的修复行为是:
强制重启微信
手动进入微信的[我的收货地址]菜单,执行一次左滑返回手势操作,这时再进入页面,收货地址又可以调出了。
目前对于这个行为不是很理解,是有某个事件我没监听,还是微信收货地址共享本身存在这个bug?