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

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

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

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

  1. 微信小程序真机预览跟本地不同的问题。原文地址:https://blog.csdn.net/qq_27187991/article/details/69664247/

    微信小程序中出现最多的一个问题,就是真机跟本地不同:我简单列举一些我发现的原因,给大家参考,大家也可以把自己发现的东西回复给我,给我参考: 本地看不到数据,就先让本地能看到数据,再看本帖....特别提 ...

  2. 解决微信小程序wepy真机预览跟本地表现不一样,数据变化了视图没变化

    当时搜了很多相关问题都没找到相似的 只看到有这个相似的描述wepy在onLoad里修改data-object的值页面不渲染 ,通过setData解决的. 但是这个还不是根本的解决办法,有些地方用set ...

  3. 小程序红包开发跳坑记 微信小程序红包接口开发过程中遇到的问题 微信小程序红包开发

    现在做小程序的越来越多,商家推广也是一个瓶颈,谁不发点红包,都很难找到人来用你的微信小程序了.于是不管你开发什么小程序功能,你或多或少都要用到小程序来发红包吧.  我们自己之前做公众号发红包,做了两三 ...

  4. 微信小程序图片放大预览

    需求:当点击图片时,当前图片放大预览,且可以左右滑动 实现方式:使用微信小程序图片预览接口 我们可以看到api需要两个参数,分别通过下面的data-list和data-src来传到js中 wxml代码 ...

  5. 微信小程序真机定位问题技巧

    小程序导航 https://wq.xmaht.top 开发者在开发小程序的时候可能会碰到一些这样的问题: 问题1  开发者工具上看效果没问题,但是在真机上测试不行? 问题2  有用户遇到小程序功能无法 ...

  6. 【微信小程序】微信小程序wx.previewImage预览图片

    一.小知识 二.例子,配合轮播图使用效果更佳!(如图1) 1.wxml <scroll-view scroll-y="true"> <swiper catchta ...

  7. 微信小程序:图片预览

    wxml页面: <image src='{{UPLOAD_IMAGES_URL}}{{vv.img_s}}' data-src="{{vv.img}}" bindtap=&q ...

  8. 原创:从零开始,微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习:一:微信小程序的特点张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使用的 ...

  9. 微信小程序之wx.request:fail错误,真机预览请求无效问题解决,安卓,ios网络预览异常

    新版开发者工具增加了https检查功能:可使用此功能直接检查排查ssl协议版本问题: 可能原因:0:后台域名没有配置0.1:域名不支持https1:没有重启工具:2:域名没有备案,或是备案后不足24小 ...

随机推荐

  1. cordova插件开发注意事项

    1. 编写插件,先创建好cordova项目之后,在项目里开发调试好在去创建插件目录 如何在cordova项目里创建呢,在android文件夹下面的res/xml/config.xml里去加入插件 例如 ...

  2. Asp,Net里的Form表单

    1.Form表单是页面与Web服务器交互过程中最重要的信息来源. 2.<form action="传到哪个页面的网站地址" method="post和get 两种方 ...

  3. node基本理念(事件、多线程、进程)

    关于node的几点理解: 1.所谓的node单线程,是指node的event loop,也就是我们的业务脚本是跑在一个单线程中的,可以理解为主线程: 2.若存在IO操作,例如文件.网络,是单独在线程里 ...

  4. mysql 内连接、左连接、右连接

    记录备忘下,初始数据如下: DROP TABLE IF EXISTS t_demo_product; CREATE TABLE IF NOT EXISTS t_demo_product( proid ...

  5. EF:自定义Oracle的映射类型

    oracle在DB First模式下,int类型的字段会自动映射为decmial类型的属性. 我们可以通过自定义类型映射进行“纠整”. 在app.config 自定义映射规则: <oracle. ...

  6. 使用批处理设置JDK环境变量(Win7可用,新版本)

    欢迎探讨,如有错误敬请指正 如需转载,请注明出处http://www.cnblogs.com/nullzx/ 1. JDK环境的设置 一般情况下来说按照网上大多数的教程设置JDK的环境变量即可.但对于 ...

  7. OleDB Destination 用法

    第一部分:简介 OleDB Destination component 是将数据流load 到destination,共有5种Data Access Mode,一般的Destination compo ...

  8. 一篇通俗易懂的CSS层叠顺序与层叠上下文研究

    网上有很多这方面的教程,但不是苦涩难懂就是从哪copy过来的,反正很长一段时间我是没看懂,时间长了也没打算去研究了,主要原因是,基本上很少会遇到那些问题(所以说啊,要是没有研究精神的才懒得管它).但自 ...

  9. OpenCASCADE Documentation System

    OpenCASCADE Documentation System eryar@163.com Abstract. Doxygen is the de facto standard tool for g ...

  10. datatable去重

    两种方法1 数据库直接去除重复select distinct * from 表名去除了重复行distinct 2 对 DataTable直接进行操作DataTable dt=db.GetDt(&quo ...