zoukankan      html  css  js  c++  java
  • 原创:跳坑指南——微信小程序真机预览跟本地不同的问题

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

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

     

    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:可以参考这个微信小程序常见错误及基本排除方法

  • 相关阅读:
    RE
    【LeetCode】198. House Robber
    【LeetCode】053. Maximum Subarray
    【LeetCode】152. Maximum Product Subarray
    【LeetCode】238.Product of Array Except Self
    【LeetCode】042 Trapping Rain Water
    【LeetCode】011 Container With Most Water
    【LeetCode】004. Median of Two Sorted Arrays
    【LeetCode】454 4Sum II
    【LeetCode】259 3Sum Smaller
  • 原文地址:https://www.cnblogs.com/wxapp-union/p/6253565.html
Copyright © 2011-2022 走看看