同样问题,低于ios14正常. 是什么原因导致的呢
wx.config提示invalid signature?出现错误的手机ios版本14以上并且微信版本为7.0.18,就出现签名错误提示,不是ios14或者微信版本不是7.0.18的就都可以成功,请问是什么原因
2020-12-10同样的问题,在ios系统版本 ios13.x是可以的,ios14+微信7.0.15是有问题的
IOS7.0.15 jssdk config失败https://www.bwjf.cn/toThirdPlatBwt?fpqqlsh=AI20200914095038446&serialNumber=2020080650280834&postType=1 手机系统:IOS 微信版本:7.0.15 调用微信签名时报错 config:invalid singature 在使用微信调试工具,安卓和IOS 7.0.14以及更低版本时不会出现报错
2020-12-10我也遇到这个问题,开发公众号. 这应该是开发者工具的bug, 代码是试图打开京东客户端,具体什么引起的不清楚
自动调整 openapp.jdmobile网页开发,当我本地应用了flexible.js后,会自动跳转到openapp.jdmobile://virtual?params={"category":"jump","des":"m","url":"https://u.jd.com/woiCMC","keplerID":"0","keplerFrom":"1","kepler_param":{"source":"kepler-open","otherData":{"mopenbp7":"0"},"channel":"8bfd09e186324410bd59504c345afd85"},"union_open":"union_cps"} 本人测试好多次,在chrome本次没有问题, [图片] flexible.js代码如下 [代码];([代码][代码]function[代码][代码](win, lib) {[代码][代码] [代码][代码]var[代码] [代码]doc = win.document;[代码][代码] [代码][代码]var[代码] [代码]docEl = doc.documentElement;[代码][代码] [代码][代码]var[代码] [代码]metaEl = doc.querySelector([代码][代码]'meta[name="viewport"]'[代码][代码]);[代码][代码] [代码][代码]var[代码] [代码]flexibleEl = doc.querySelector([代码][代码]'meta[name="flexible"]'[代码][代码]);[代码][代码] [代码][代码]var[代码] [代码]dpr = 0;[代码][代码] [代码][代码]var[代码] [代码]scale = 0;[代码][代码] [代码][代码]var[代码] [代码]tid;[代码][代码] [代码][代码]var[代码] [代码]flexible = lib.flexible || (lib.flexible = {});[代码] [代码] [代码][代码]if[代码] [代码](metaEl) {[代码][代码] [代码][代码]console.warn([代码][代码]'将根据已有的meta标签来设置缩放比例'[代码][代码]);[代码][代码] [代码][代码]var[代码] [代码]match = metaEl.getAttribute([代码][代码]'content'[代码][代码]).match(/initial\-scale=([\d\.]+)/);[代码][代码] [代码][代码]if[代码] [代码](match) {[代码][代码] [代码][代码]scale = parseFloat(match[1]);[代码][代码] [代码][代码]dpr = parseInt(1 / scale);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]if[代码] [代码](flexibleEl) {[代码][代码] [代码][代码]var[代码] [代码]content = flexibleEl.getAttribute([代码][代码]'content'[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码](content) {[代码][代码] [代码][代码]var[代码] [代码]initialDpr = content.match(/initial\-dpr=([\d\.]+)/);[代码][代码] [代码][代码]var[代码] [代码]maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/);[代码][代码] [代码][代码]if[代码] [代码](initialDpr) {[代码][代码] [代码][代码]dpr = parseFloat(initialDpr[1]);[代码][代码] [代码][代码]scale = parseFloat((1 / dpr).toFixed(2));[代码][代码] [代码][代码]}[代码][代码] [代码][代码]if[代码] [代码](maximumDpr) {[代码][代码] [代码][代码]dpr = parseFloat(maximumDpr[1]);[代码][代码] [代码][代码]scale = parseFloat((1 / dpr).toFixed(2));[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]if[代码] [代码](!dpr && !scale) {[代码][代码] [代码][代码]var[代码] [代码]isAndroid = win.navigator.appVersion.match(/android/gi);[代码][代码] [代码][代码]var[代码] [代码]isIPhone = win.navigator.appVersion.match(/iphone/gi);[代码][代码] [代码][代码]var[代码] [代码]devicePixelRatio = win.devicePixelRatio;[代码][代码] [代码][代码]if[代码] [代码](isIPhone) {[代码][代码] [代码][代码]// iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案[代码][代码] [代码][代码]if[代码] [代码](devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {[代码][代码] [代码][代码]dpr = 3;[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]if[代码] [代码](devicePixelRatio >= 2 && (!dpr || dpr >= 2)){[代码][代码] [代码][代码]dpr = 2;[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]dpr = 1;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]// 其他设备下,仍旧使用1倍的方案[代码][代码] [代码][代码]dpr = 1;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]scale = 1 / dpr;[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]docEl.setAttribute([代码][代码]'data-dpr'[代码][代码], dpr);[代码][代码] [代码][代码]if[代码] [代码](!metaEl) {[代码][代码] [代码][代码]metaEl = doc.createElement([代码][代码]'meta'[代码][代码]);[代码][代码] [代码][代码]metaEl.setAttribute([代码][代码]'name'[代码][代码], [代码][代码]'viewport'[代码][代码]);[代码][代码] [代码][代码]metaEl.setAttribute([代码][代码]'content'[代码][代码], [代码][代码]'initial-scale='[代码] [代码]+ scale + [代码][代码]', maximum-scale='[代码] [代码]+ scale + [代码][代码]', minimum-scale='[代码] [代码]+ scale + [代码][代码]', user-scalable=no'[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码](docEl.firstElementChild) {[代码][代码] [代码][代码]docEl.firstElementChild.appendChild(metaEl);[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]var[代码] [代码]wrap = doc.createElement([代码][代码]'div'[代码][代码]);[代码][代码] [代码][代码]wrap.appendChild(metaEl);[代码][代码] [代码][代码]doc.write(wrap.innerHTML);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]function[代码] [代码]refreshRem(){[代码][代码] [代码][代码]var[代码] [代码]width = docEl.getBoundingClientRect().width;[代码][代码] [代码][代码]if[代码] [代码](width / dpr > 540) {[代码][代码] [代码][代码]width = 540 * dpr;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]var[代码] [代码]rem = width / 10;[代码][代码] [代码][代码]docEl.style.fontSize = rem + [代码][代码]'px'[代码][代码];[代码][代码] [代码][代码]flexible.rem = win.rem = rem;[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]win.addEventListener([代码][代码]'resize'[代码][代码], [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]clearTimeout(tid);[代码][代码] [代码][代码]tid = setTimeout(refreshRem, 300);[代码][代码] [代码][代码]}, [代码][代码]false[代码][代码]);[代码][代码] [代码][代码]win.addEventListener([代码][代码]'pageshow'[代码][代码], [代码][代码]function[代码][代码](e) {[代码][代码] [代码][代码]if[代码] [代码](e.persisted) {[代码][代码] [代码][代码]clearTimeout(tid);[代码][代码] [代码][代码]tid = setTimeout(refreshRem, 300);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}, [代码][代码]false[代码][代码]);[代码] [代码] [代码][代码]if[代码] [代码](doc.readyState === [代码][代码]'complete'[代码][代码]) {[代码][代码] [代码][代码]doc.body.style.fontSize = 12 * dpr + [代码][代码]'px'[代码][代码];[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]doc.addEventListener([代码][代码]'DOMContentLoaded'[代码][代码], [代码][代码]function[代码][代码](e) {[代码][代码] [代码][代码]doc.body.style.fontSize = 12 * dpr + [代码][代码]'px'[代码][代码];[代码][代码] [代码][代码]}, [代码][代码]false[代码][代码]);[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]refreshRem();[代码] [代码] [代码][代码]flexible.dpr = win.dpr = dpr;[代码][代码] [代码][代码]flexible.refreshRem = refreshRem;[代码][代码] [代码][代码]flexible.rem2px = [代码][代码]function[代码][代码](d) {[代码][代码] [代码][代码]var[代码] [代码]val = parseFloat(d) * [代码][代码]this[代码][代码].rem;[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]d === [代码][代码]'string'[代码] [代码]&& d.match(/rem$/)) {[代码][代码] [代码][代码]val += [代码][代码]'px'[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]val;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]flexible.px2rem = [代码][代码]function[代码][代码](d) {[代码][代码] [代码][代码]var[代码] [代码]val = parseFloat(d) / [代码][代码]this[代码][代码].rem;[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]d === [代码][代码]'string'[代码] [代码]&& d.match(/px$/)) {[代码][代码] [代码][代码]val += [代码][代码]'rem'[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]val;[代码][代码] [代码][代码]}[代码] [代码]})(window, window[[代码][代码]'lib'[代码][代码]] || (window[[代码][代码]'lib'[代码][代码]] = {}));[代码] 跳转后台的代码[代码]openapp.jdmobile://virtual?params={"category":"jump","des":"m","url":"https://u.jd.com/woiCMC","keplerID":"0","keplerFrom":"1","kepler_param":{"source":"kepler-open","otherData":{"mopenbp7":"0"},"channel":"8bfd09e186324410bd59504c345afd85"},"union_open":"union_cps"}[代码]
2019-12-19