脚本之家

原创:跳坑指南——微信小程序真机预览跟本地不同的问题

上一篇
原创:从零开始,微信小程序新手入门宝典《一》
下一篇
原创:经验分享:微信小程序外包接单常见问题及流程

微信小程序中出现最多的一个问题,就是真机跟本地不同:我简单列举一些我发现的原因,给大家参考,大家也可以把自己发现的东西回复给我,给我参考:


本地看不到数据,就先让本地能看到数据,再看本帖。。。。

1:本地可以看到数据,ios不行,安卓可以;


可能是tsl版本问题不支持1.2导致,部分安卓可以允许tsl低于1.2而正常显示,而苹果不行;


解决方法:参考此帖排查问题并修复:request:fail错误(含https解决方案)(真机预览问题


可能是证书不受信任


2:本地可以看到数据,ios可以,安卓不行;


ios可以,而安卓不行,可能有如下几个情况


情况一:使用了不兼容安卓的js,比如ES6的Object.assign,部分ES6不兼容安卓,即使开启ES6转es5选项也无用;比如for of 和 forEach 需要换成for in;


情况说明:官方将在本月内的第二个版本更新时对ES6绝大部分API进行兼容


情况二:证书缺失,大部分情况是缺失中间证书,检测地址:https://www.myssl.cn/tools/check-server-cert.html;中间证书安装参考:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1661;


情况三:证书不受信任


情况四:测试机型较老,而tsl版本不支持;tsl需要支持较老版本,包括1.0,1.1;


3:本地可以看到数据,IOS及安卓均不可看到数据:可能是:


情况一:使用了自签的证书;必须使用第三方受认可的证书


情况二:使用了IP,必须使用备案的域名


情况三:https问题,选项中选择了不检验域名选项,此选项对真机无效;


4:url内使用了端口,参考:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1899


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


6:一些特殊问题,包括utf-8的bom问题导致安卓红点问题;http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1522

后台返回数据中有bom非法字符, 前端可以用.trim()方法去一下, 治标的话得让后台把所有的文件编码格式改为utf-8


官方解释:近日有发现类似问题的都是因为返回的数据是 UTF-8 with BOM(即数据的开头是一个不可见字符 unicode 65279),Android 平台没有自动过滤,导致 JSON.parse 失败。目前需要开发者自行兼容,下个版本 Android 会过滤此字符。

<?php 前边有一个 <feff>:http://www.wxapp-union.com/portal.php?mod=view&aid=959

http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1366:


你请求得到的res.data是否有值,如果没有值就检查一下ssl的问题。


如果有值但没有赋值成功,最可能的原因是获取的是一个字符串而不是一个数组或对象


你需要做一个格式化, if(typeof res.data === 'string')var data = JSON.parse(res.data.trim());再用data赋值。


这个的原因是php输出的不会忽略BOM的文件头,特别使用windows自带写字板修改后就会有个ufeff的字符在文件开始处,这个是不可见但会实际包含的。最后返回的就是字符串而非json数据,你直接对data赋值字符串是无法达到你想要的效果的,所以需要去掉,并重新格式化变成一个数组或对象


7:真机跟本地样式不同:可能使用了ios或安卓某一端不兼容的样式属性;目前编辑器检查越来越严格,标签不闭合可能导致一些奇怪的问题;


8:微信版本不足,建议使用最新版本微信进行测试;最新版本查看地址:weixin.qq.com;此情况会有可能会导致uploadfile无效及新增api无效等问题:http://www.wxapp-union.com/portal.php?mod=view&aid=959


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;http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1380


13:超时:

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


14:可以参考这个微信小程序常见错误及基本排除方法

以上就是原创:跳坑指南——微信小程序真机预览跟本地不同的问题的全部内容,希望这篇技术文档对大家的学习有所帮助,转发给身边的程序猿朋友,感谢各位大大支持:脚本之家 jb51.cc

原创:跳坑指南——微信小程序真机预览跟本地不同的问题 由脚本之家 jb51.cc 收集整理
本文版权归原作者所有,转载请注明出处并带上本文链接!

上一篇
原创:从零开始,微信小程序新手入门宝典《一》
下一篇
原创:经验分享:微信小程序外包接单常见问题及流程

您可能感兴趣的小程序开发教程

小程序开发

微信小程序中将多个view居中显示的方法

我们在这里要实现的效果是这样的,在小程序中将多个view居中显示 先看一下效果图如下图效果所示:我们需要将“延长收货”,”查看物流”,“提醒发货”,“提醒发货”是四个按钮放在页面最中间,并且间隔适当的

小程序开发

微信小程序如何居中布局?

前段时间小程序上线后就弃坑了,回到网页开发去了,最近又有新项目,再次入坑,难免需要一些demo来重新熟悉,在这个过程中,发现demo中很少有人使用flex布局,今天给大伙稍微讲一下这个布局。 

小程序开发

防止小程序多次点击跳转解决方案

场景在使用小程序的时候会出现这样一种情况:当网络条件差或卡顿的情况下,使用者会认为点击无效而进行多次点击,最后出现多次跳转页面的情况,就像下图(快速点击了两次):解决办法然后从轻松理解JS函数节流和函..

小程序开发

微信小程序-事件

微信小程序的"事件"挺有意思。看了说明文档后发现它的功能很全,事件可以向父节点传递,而且打印这个事件的信息很透明,调试起来应该非常方便。接下来把文档copy过来,原文地址:https://mp.weixin.qq.com