欢迎光临,了解微信小程序开发,就上易用通!

小程序开发填坑《二十六》小程序真机预览跟本地不同

发布:2018-01-25 10:33浏览: 来源:网络 作者:tianshu

小程序开放已经进入倒计时阶段,开发者们也都进入了真机测试的阶段,而且坑也是越来越多。在这我们收集了一些比较有代表性的问题,和解决办法,希望能够帮助大家解决问题。如果大家还有更好的觉得办法也希望分享给大家。


1:本地可以看到数据,ios不行,安卓可以;
     可能是tsl版本问题不支持1.2导致,部分安卓可以允许tsl低于1.2而正常显示,而苹果不行;
     解决方法:参考此帖排查问题并修复:request:fail错误(含https解决方案)(真机预览问题
     可能是证书不受信任
2:本地可以看到数据,ios可以,安卓不行;
     ios可以,而安卓不行,可能有如下几个情况
        情况一:使用了不兼容安卓的js,比如es6的Object.assign,部分es6不兼容安卓,即使开启es6转es5选项也无用;
                    情况说明:官方将在本月内的第二个版本更新时对ES6绝大部分API进行兼容
        情况二:证书缺失,大部分情况是缺失中间证书,检测地址:https://www.myssl.cn/tools/check-server-cert.html;
        情况三:证书不受信任        
        情况四:测试机型较老,而tsl版本不支持;tsl需要支持较老版本,包括1.0,1.1;


3:本地可以看到数据,IOS及安卓均不可看到数据:可能是:
     情况一:使用了自签的证书;必须使用第三方受认可的证书
     情况二:使用了IP,必须使用备案的域名
     情况三:https问题,选项中选择了不检验域名选项,此选项对真机无效;


4:url内使用了端口,参考:微信小程序websocket端口配置


5:数据未加载成功,需要设定一定的延迟量,在加载数据完成后再渲染页面;


6:一些特殊问题,包括utf-8的bom问题导致安卓红点问题;https://weixin.huosu.com/forum.php?mod=viewthread&tid=2753


后台返回数据中有bom非法字符, 前端可以用.trim()方法去一下, 治标的话得让后台把所有的文件编码格式改为utf-8
官方解释:近日有发现类似问题的都是因为返回的数据是 UTF-8 with BOM(即数据的开头是一个不可见字符 unicode 65279),Android 平台没有自动过滤,导致 JSON.parse 失败。目前需要开发者自行兼容,下个版本 Android 会过滤此字符
7:真机跟本地样式不同:可能使用了ios或安卓某一端不兼容的样式属性;


8:微信版本不足,建议使用最新版本微信进行测试;最新版本查看地址:weixin.qq.com;此情况会有可能会导致uploadfile无效及新增api无效等问题


9:图片本地可以看到,但是真机无法显示;
     假如是背景图,可能是
本地资源无法通过 css 获取
background-image:可以使用网络图片,或者 base64,或者使用<image/>标签
      假如是网络图片,可能是图片服务器设置了反盗链;


10:header设置异常:这个情况多数发生在使用POST时;
data 数据说明 最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:

对于 header['content-type'] 为 'application/json' 的数据,会对数据进行 JSON 序列化
对于 header['content-type'] 为 'application/x-www-form-urlencoded' 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)

11:网络请求设置了referer :
网络请求的 referer 是不可以设置的,格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版。
12:异步或同步问题;部分操作属于异步操作,比如uploadfile;https://weixin.huosu.com/forum.php?mod=viewthread&tid=2532


13:超时:
request 的默认超时时间和最大超时时间都是 60s





免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。