用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

2017-3-19 18:45:20 天下雪原创达人 造轮子 人生巅峰 楼主 24038
本帖配合此帖,共同辅助解决真机相关问题:跳坑《一百四十四》ios苹果真机相关问题


说明:本帖将不断聚合安卓独有或共用的问题,因为安卓问题过于复杂和庞大,所以需要不断整理,第一次内容有点少,敬请谅解!
如果你有本帖内没有出现的安卓真机上的问题及解决方法,欢迎共享出来,给更多的同学参考!

如果本帖内没有收录到应该收录的内容,欢迎分享或举荐,以便我及时更新。
本帖制作日期为2017年3月19日,不避免其中的问题在未来已经获得解决或者不再适用,仅供参考;

特别说明,本帖特别针对以下两个情况:

情况一:此问题只在安卓上出现,而ios没有问题;
情况二:这个问题同时在安卓和ios上出现;

特别说明二:本帖没有提供的东西:

1:不同样式的在真机上的兼容性问题说明:原因:这个并非小程序独有的问题,可以通过搜索解决;
2:最新版本的安卓微信版本,因为最新版本在不断变化,所以最新版本请在weixin.qq.com内及时查看;

安卓的问题,一般集中的在以下几个方面;

1:请求数据问题;
2:上传文件问题;由于上传文件数据类型限制,一次只能上传一个文件;
3:组件使用问题;
4:特定安卓机型的问题;因为安卓机型太多,碎片化太厉害,会出现不同机型表现不一致的情况;
5:样式不兼容:使用高级的css,可能会在某些不兼容的现象,这个现象在安卓和ios都有表现;希望有同学帮忙研究一下
6:使用了ES6:此问题会导致安卓或ios上都可能报错;
7:文件带有BOM头:此问题会导致json解析有问题;
8:证书缺失中间证书,导致ssl类报错或无法请求数据;
9:上传文件带有中文名称或中文参数问题,会导致unknown报错
假如本帖没有解决你的问题,你可以在综合交流区内发帖咨询。


0.15.152900更新:
F 修复 API wx.playBackgroundAudio 在 Android 环境中,某些情况无法继续播放已暂停音乐的问题
F 修复 API wx.previewImage 在 Android 下返回的时候会触发 page.onShow 的问题

修复 Android客户端 某些情况下调用 wx.request 返回 fail:interrupted 的问题
官方说明:细节点:
微信小程序运行在三端:iOS、Android 和 用于调试的开发者工具。
三端的脚本执行环境聚以及用于渲染非原生组件的环境是各不相同的:
  • 在 iOS 上,小程序的 javascript 代码是运行在 JavaScriptCore 中,是由 WKWebView 来渲染的,环境有 iOS8、iOS9、iOS10
  • 在 Android 上,小程序的 javascript 代码是通过 X5 JSCore来解析,是由 X5 基于 Mobile Chrome 37 内核来渲染的
  • 在 开发工具上, 小程序的 javascript 代码是运行在 nwjs 中,是由 Chrome Webview 来渲染的

尽管三端的环境是十分相似的,但是还是有些许区别:
  • ES6 语法支持不一致 语法上开发者可以通过开启 ES6 转 ES5 的功能来规避。详情
  • ES6 API 支持不一致 考虑到代码包大小的限制,API 上目前需要开发者自行引入相关的类库来进行处理,可以通过 caniuse 或者 X5兼容 查询到相关 API 的支持情况
  • wxss 渲染表现不一致 尽管可以通过开启样式补全来规避大部分的问题 详情,还是建议开发者需要在 iOS 和 Android 上检查小程序的真实表现。




官方说明:ES6支持度说明:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/details.html


相关跳坑指南:基本都相关,建议出现问题,先刷一遍跳坑指南,然后再展开搜索;

跳坑《一百二十四》wx.uploadFile(上传文件)相关问题
跳坑指南《七十一》微信小程序真机预览跟本地不同的问题
跳坑《一百二十三》微信支付(微信小程序支付)
跳坑《五十九》安卓下不解析json,request的response中出现红点
跳坑《七十三》小程序真机预览时,提示出现内部错误
跳坑《九十八》内部错误:任务因占用内存过大被终止

特别复制一部分跳坑指南《七十一》微信小程序真机预览跟本地不同的问题的内容:因为这个请求数据问题包括了50%的安卓问题数量;
2:本地可以看到数据,ios可以,安卓不行;(请测试多个安卓机型及安卓版本以便确定非独特机型问题)
     ios可以,而安卓不行,可能有如下几个情况
        情况一:使用了不兼容安卓的js,比如es6的Object.assign,部分es6不兼容安卓,即使开启es6转es5选项也无用;比如for of 和 forEach 需要换成for in;具体es6支持,请看:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/details.html?t=201716
        情况二:证书缺失,大部分情况是缺失中间证书,检测地址: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;
        情况五:使用了promise兼容库:bluebird.js,这个兼容库在真机上使用问题,引入es6-promise.min.js;参考http://www.wxapp-union.com/portal.php?mod=view&aid=789

        情况六:安卓能够接到数据,但是无法解析json,请看底部的BOM问题说明;
        情况七:ios正常,有些安卓机无法读取某个属性

3:本地可以看到数据,IOS及安卓均不可看到数据:可能是:
     情况一:使用了自签的证书;必须使用第三方受认可的证书(比如阿里云,腾讯云提供的证书)

     情况二:使用了IP,必须使用备案的域名
     情况三:https问题,选项中选择了不检验域名选项,此选项对真机无效;


     特殊提示:排除证书问题及查看免费证书地址请看此帖:跳坑《一百》ssl证书相关问题(SSL相关问题请在这问)
      
3-1:本地可以看到数据,打开调试也可以看到数据,关闭调试则看不到数据;或是开发版可以看到数据,体验版无法看到数据;或是打开调试可以上传文件,关闭调试则无法上传文件;
     请参考:跳坑《七十九》调试模式与非调试模式,不校验域名
     这个基本都是https问题,请参考上面的https问题解决的链接进行排查;     可能是很多种情况:比如域名没有备案,没有配置域名等等问题。。。
     特别提醒:开启调试模式可以在开发时暂时规避域名问题,可以通过开启上面的调试模式来先规避,然后排查其他问题,以便确定问题所在!(ssl证书问题似乎无法规避)     
     特殊情况:微信支付开发版可以,体验版不可以,可能是没有配置相应域名:需要在后台配置api.mch.weixin.qq.com域名;
     排除问题方法:开发者工具内关闭项目内的“不检验域名”选项,重启工具后看是否有合法域名报错,有则是域名未配置的原因,没有则是其他原因,请按https问题排除贴进行排除。
     特殊情况二:websocket遇到问题:WebSocket相关问题说明


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


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

     情况一:能够拿到数据,但是无法渲染出来,可以考虑将数据请求从onload中转移至ready内     情况二:异步获取的数据,在渲染完成时仍未返回导致页面空白或未显示数据,需要设置延迟量


6:一些特殊问题,比如utf-8的bom问题导致安卓不解析json问题;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赋值字符串是无法达到你想要的效果的,所以需要去掉,并重新格式化变成一个数组或对象。

wx.request返回的json是字符串,怎么破?
参考地址:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1522

解决方案:thinkPHP json 变成了文本:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=3032

安卓真机请求成功了,不能渲染到数据是什么问题http://www.wxapp-union.com/forum.php?mod=viewthread&tid=2987


相关文章:

去掉BOM头的方法 ...
wx.uploadFile在安卓机the same task is working解决方法
小程序tabBar在安卓和IOS下显示不一致
安卓真机预览request:fail(后台spring boot)
小程序一次性上传多个本地图片
IOS系统中,倒计时(setInterval函数)失效的问题

相关问题:

安卓request回来的数据是字符串这个问题怎么搞啊
有遇到 input中的bindinput 的e.detail.cursor 在安卓真机打印出...
安卓真机请求成功了,不能渲染到数据是什么问题
微信小程序安卓手机上传提示uploadfail unknown

相关讨论:
ios和安卓请求回来的数据不同,求解答
在开发者工具中和ios系统中,请求回来的数据都是json可操作数据。但是安卓请求回来的是字符串,无法进行操作。。
2.jpg 1.png
这是ios和安卓的请求的数据差异
我在后台返回json的时候遇到过 后来用自己转json格式就可以了
[AppleScript] 纯文本查看 复制代码
            JSONObject jsonObject = new JSONObject();
            ncyl.put("jht_error_msg",  "成功" );
            ncyl.put("list", jsonObject);
            ResponseUtils.renderJson(response, jsonObject.toString());


安卓要加反斜杠,你转一遍json吧


相关讨论:

小程序上线在ios端显示正常,在安卓端没有数据
刚刚上线了一个小程序,在ios端显示就很正常,没有问题,但是在安卓端就不好使,是什么原因。
微信本身的 Bug 引发的兼容性问题有个现成的例子,就是 wx.request() 返回的状态码 res.statusCode 的值在 iOS 下是 int 型数据,而在 Android 6.0.1 上却是 String 型数据。如果你判断服务器的返回状态码方法不当,可能就踩到坑里了。
[AppleScript] 纯文本查看 复制代码
wx.request({
    url: 'http://api.example.com',
    success: function (res) {
        if (res.statusCode === 200) {
            // success
        } else {
            // server failure
        }
    }
})
上述代码就踩坑了,正确的做法是使用 == 而不是使用 === 来判断。另外一个更规范的方法是使用 parseInt(res.statusCode) === 200 来实现。

我已经解决了是 安卓和苹果返回的类型不一样 要在onlaod里面加上判断   进行一次强制转换就可以了


相关讨论:
安卓微信上传文件
安卓 手机  上传图片  使用wx:uploadfile 接口  不能上传  返回码为空  data:unknown
苹果 手机  可以正常上传
安卓 微信 版本 是6.5.4的
我这边已经好了,是自己服务器上文件名重复了,不怪别人


相关讨论:
安卓 Symbol is not defined;sdk catch error                         //ES5
                        // for(let i=0; i<_list.length; i++){
                        //     let item = _list;
   //      if (item.isCorrect) {
                        //         if (item.isCorrect) {
                        //             correctCount++;
                        //         } else {
                        //             errorCount++;
                        //         }
                        //     }
                        // }

                        //ES6
                        for (let item of _list) {
                            if (item.isCorrect) {
                                if (item.isCorrect) {
                                    correctCount++;
                                } else {
                                    errorCount++;
                                }
                            }
                        }

ES编译时报错,Symbol is not defined;sdk catch error,机型oppoR7 安卓版本4.4.4 ColorOS版本2.1
Android 上还不支持 for of这样的写法


相关讨论:
安卓上网络请求request:fail ssl hand shake error
安卓机4.4版本上网络请求request:fail ssl hand shake error,但在iOS和模拟器上访问正常
本来服务器之前是支持TLS1.2/TLS1.1/TLS1.0的.在查阅网友的解决方法后关闭了TLS1.1/TLS1.0/SSLv3/SSLv2,所以服务器目前仅支持TLS1.2,但还是不行,同样的错误,请问有没有同样遇到问题解决了的?
OK!折腾了一天,最后将阿里云的证书换成腾讯的免费证书就解决了,服务器设置支持TSL1.2/TLS1.1/TLS1.0 . (虽然官方说HTTPS 的TSL最低支持1.2以上,但是为了别的低版本的设备系统,也需要开启了1.0/1.1)


相关讨论:
安卓多张图片上传,只显示一张
安卓真机测试多张图片同时上传,只显示一张;如果再次多张同时上传则会弹出小程序。开发工具和IOS可以同时上传多张,下面是代码:
[AppleScript] 纯文本查看 复制代码
var me=this;
 wx.chooseImage({
      count: 9,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: function (res) {
        var tempFilePaths = res.tempFilePaths;
          for (var i = 0; i < tempFilePaths.length; i++) {
            request.uploadFile({
              url: 'qiniu://',
              filePath: tempFilePaths,
              name: 'file',
              formData: {
                'token': me.data.token
              },
              success: function (res) {
                array.unshift(JSON.parse(res.data).url);
                me.setData({
                  img: array,
                  imgBool: "false"
                })
              },  
          }
    });

安卓里url + name相同会判断为同一个task,并发上传会导致"uploadFile:fail:the same task is working"报错
安卓只支持一个图片上传完后上传另一个,直接for循环只会成功上传一个


相关讨论:
安卓请求失败,request:fail send https request 安卓手机在wx.request时请求失败,输出request:fail send https request fail:null;
电脑上和ios上都可以,就安卓手机fail。
是安卓小程序的X5内核对于服务器的https有什么限制吗?实测三台安卓4.4.2,支持tsl1.2.
到底是什么问题?
1.jpg
终于搞定啦。小程序对于数据返回很严格。
POST在请求时一定要设置成: header:{'content-type': 'application/x-www-form-urlencoded'}.
我遇到的问题是GET请求的,解决是在后端返回时设置header。。。设置header就好了


相关讨论:
安卓手机报:ssl hand shake error
真机测试过程中,IOS没有报错, wx.request都正常。但是在华为手机,小米手机上会报错:ssl hand shake erro,ngix中已设置
tls已经支持1.0 1.1. 1.2版本,小程序wx.request的 method:'POST'已设置为大写,微信客户端也已经是最新版本。请问安卓下为何还是不行呢?有没有遇见并解决的,多谢。
其实有一个简单的测试方案,遇见这种问题可以将wx.request的地址在手机上的QQ浏览器里进行访问,如果提示“不被信任的证书,是否添加信任”就说明此证书有问题。这就是解决的方向了。目前我们就是这样发现的问题。正在解决中。


天下雪补充:QQ浏览器改为微信浏览器更为准确;
相关讨论:
安卓系统uploadFile出现unknown错误 IOS手机端跟PC端都没有问题,就在安卓手机端出现未知错误,返回数据为:object{data:'unknown'}
中文问题,你传的data不能有中文,有中文的话要经过base64编码上传


相关讨论:
安卓下不解析json 的问题
安卓下执行request接口,服务端返回的json ,无法解析, typeof  为 string

ios下正常解析
客户端
var responseData = res.data;
console.log(typeof(responseData));


服务端

                // 返回JSON数据格式到客户端 包含状态信息
                header('Content-Type:application/json; charset=utf-8');
                exit(json_encode($data));
解决了,是android 下调用request 的时候,自动加上了 bom头,去掉就好了.trim()  去bom头。。
相关讨论:
小程序安卓平台地图bug安卓机选择地址,默认的第一个,选择之后信息为空。
小程序使用wx.chooseLocation的方法,跳出选择地址的界面,安卓机上选择第一个后,确定后,没有任何地址信息。
res.name ?  res.name : res.address

暂时用这个吧,等修复了。


相关讨论:
网络请求,iOS正常,android上报下面的错误 网络请求,iOS正常,android上报下面的错误,貌似是https的问题,但是就android上不能返回数据
1.jpg
找到问题了,是string.startsWith不兼容android。不得不吐槽这个错误提示


相关讨论:
Android 兼容性问题
问题描述:
Android 部分平台(如 MI4 Android 6.0.1,华为,OPPO 等相关型号均会出现)在比较两个值时,使用 "===" 不能正确得到运算结果,必须使用 “==” 才可以。


是否必现:
在特定平台上必现

代码示例:

      success: (res) => {
        if (res.statusCode === 200) {
          return resolve(res.data)
        } else {
          return reject(res.data)
        }
      },
上面代码是 wx.request 的 success 回调函数,如果写成上面样子,则在指定平台代码全部跑到 reject 分支里执行,如果把 === 改成 == 则运行结果就正确了。

问题严重性:
由于微信小程序今天刚上线,从我掌握的情况来看,好多信微信小程序沦陷。而且这个问题较隐蔽,很多小程序可能还没发现。我们是因为导致页面不显示,很容易就发现问题。
statusCode 在IOS和Android下一个是number类型,一个是string类型,我也踩坑了


相关讨论:
android的json解析出现了问题
该问题在ios和开发工具上都正常,1月4日以前在android上也正常。

1.png

在ios上和开发工具上是正常的:
2.png
在android上出现错误:
3.png
data无法解析成object,自己使用prase也会报错。该问题在1月4日更新以后出现。
可以在小程序收到的响应数据看看第一个字符是否 BOM 头

console.log(res.data.charCodeAt(0))  // 65279 是 BOM


相关讨论:
android 真机无法解析 json 格式数据
我们开发的小程序已经审核通过,并发布。
使用android手机打开无法加载数据,而使用苹果手机是可以加载数据出来的。
我们的小程序是痛快商城。
检查了,API返回的数据没有BOM头,返回数据如图,但是不渲染页面。
11.jpg
数据在android上面就是不渲染。在开发工具中和ios中是渲染数据的。
12.jpg
初步检查代码,是android中真机调试预览,不支持json格式数据
13.jpg
res.data = res.data.substr(1)
res.data = JSON.parse(res.data)

你试试这段代码,如果能 work,那就确实说明你 API 返回的内容包含了 BOM 头


首先res返回的是object类型,但是res.data.result这个是string类型,所以你想要取res.data.result.ad这个是取不到的,不属于object,这个时候你需要类型转换 var result = JSON.parse(res.data.result);,转换后,result就是object类型,可以直接取值 console.log(result.ad);


相关讨论:
Object.assign() Android真机环境不支持这个API
Object.assign 是 ES6 API,安卓目前不支持


相关讨论:
Android下使用setTimeout和setInterval致使小程序崩溃
小程序模仿app启动页,在onShow事件内添加一个setTimeout进行跳转。
[AppleScript] 纯文本查看 复制代码
```
setTimeout( function() {
   wx.redirectTo( {
     url: './login'
   });
 }, 5000 );
```

或者是用setInterval设置秒数倒计至为0时再跳转页面B,小程序就不停地跳转至页面B,不停跳不停跳,用clearInterval()无法停止,最后崩溃了。当前显示的页面A和跳转进入的页面B都是有时候能正确显示,有时候是空白一片,不确定性很大。

在参考高仿知乎app的方案中,作者的做法是在onReady事件内使用setTimeout。修改之后,IOS和Android都完美展示。
参考链接:http://www.cnblogs.com/minyifei/archive/2017/01/04/6247216.html


相关讨论:
苹果map经纬度要求是数字,但title不弹出信息
说苹果不标记markers,安卓电脑都正常,后经过我仔细核对,发现了bug原因,经纬度必须是数字,后台获取json都当成文本,所以必须强制转换成number类型就可以了。


相关讨论:
安卓上wx.uploadFile的formData传输汉字出现问题(附解决方法)
在小程序端把汉字编码,在后端对应解码就可以


相关讨论:
new Date 一个时间, 在IOS 上返回NULL 安卓正常返回 let showDate = new Date("2016-12-14 14:40:00")


相关讨论:
最新版的微信6.5.3安卓版本中wx.request返回数据类型和iOS下不一致
[AppleScript] 纯文本查看 复制代码
wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: {
     x: '' ,
     y: ''
  },
  header: {
      'content-type': 'application/json'
  },
  success: function(res) {
    console.log(typeof res.data)
   //安卓下显示string
   //iOS版本下显示object
  }
})

JSON.parse(string.trim())


相关讨论:
安卓Map的Marker对位与其他平台不一致
官方的问题反馈模板粘贴后乱码了,这里简单说说。

问题:
Map组件,marker属性里面,譬如给定150x 150的图标, 那么图内什么地方对准目标点呢?
实际测试发现android和iOS的对齐方式不一致。

  • iOS --- 图标中间最底部是目标点。  这个符合一般使用习惯,一般marker有个小尖对准目标点,就在中间下方。
  • Android --- 接近左上角某个神秘的点。  实测发现并不是对齐左上角,而是左上角偏移某个值?



iOS和开发工具的表现一致,也符合使用习惯。
希望Android的地图改改, 与其他一致。

下面定位的微信总部。

代码:
<map id="map" longitude="113.324520" latitude="23.099994" scale="18" controls="{{controls}}" bindcontroltap="controltap" markers="{{markers}}" bindmarkertap="markertap" polyline="{{polyline}}" bindregionchange="regionchange" show-location style="width: 100%; height: {{dinfo.windowHeight}}px;" markers="{{markers}}"></map>

Page({
  data: {
    markers: [{
      iconPath: "/a.png",
      id: 0,
      latitude: 23.100100,
      longitude: 113.324560,
      width: 150,
      height: 150
    }],
  },
  onLoad: onLoad
})



用到的图标
1.png
2.jpg
3.jpg
4.jpg
安卓地图还有一些其他问题:

  • 无法放大到18级别,无论是收拾拉大或者attribute设置都不行
  • circle的半径与设定实际不符合,目前手上的机器测试表明,是设置值的3倍,不确定是否和设备像素尺寸有关。


继续自问自答

  • 安卓似乎 以固定的  15 x 15 marker来计算。当你的marker设置为15 x 15大小时,就对准了图标中间底部。考虑到目前安卓地图放不大,似乎也可以这么用
  • Circle在小屏幕机器上,观察到有放大2倍的。 结论是和设备屏幕大小有关。



根据上述结论,可以做一些ugly的 workaround
继续补充:

安卓radius需要除一下, 先获取 getSystemInfo里面的pixelRatio。
譬如目前主流安卓机型应该是3,小屏幕一点的是2。

你要显示50米的话,要设定为 50/pixelRatio。
这个应该是bug,但是不能知道微信打算啥时候改。 改完还得判定微信版本号来做不同处理



相关讨论:
模拟器和ios上能正常显示数据,但是有些安卓机无法读取服务器上某个属性如题,比如服务器上有一个对象为contentlist,有而且在模拟器和ios上均能读取并显示,但在有些安卓机上却无法读取这个对象,具体错误在vConsole上表示为:cannot read property 'contentlist' of undefined.但是这个安卓机能正常使用其他已发布的小程序。
原因明了了,wx.request()中,url只能写域名,参数信息要在data中补充,不然会有些安卓机无法获取到服务器的数据,会报thirdScriptError,说你某个属性未定义。


相关讨论:
微信小程序的分享功能在安卓下无效,但是在ios系统中可以正常使用?今天调用微信小程序的分享接口,在测试中发现该功能在安卓下无效,但是在ios系统中可以正常使用,这是怎么回事?
安卓版本 6.5.3 以上才支持


相关讨论:
map 组件marker在ios显示大小正常,在安卓端显示失常,显得很大 之前marker的width和height都是写死的30,之后根据getSystemInfo获取的设备宽度来计算并设定marker的width大小,在安卓端还是特别大,求指点
可以试试转成string或者转成integer都试试。。


相关讨论:
安卓平台加载不出数据,IPhone可以,开发工具上面调试也正常
安卓平台加载不出数据,IPhone可以,开发工具上面调试也正常
有没有遇到同款问题的,然后我猜测这就是审核不通过的原因了
app.js 定义 onError查看


相关讨论:
两个时间组件在安卓机上会闪退的问题
苹果机上OK,安卓目前雪崩
上代码如下:
wxml:
开始时间
      {{attachCertBeginDate}}


截止时间
     {{attachCertEndDate}}


js:
[AppleScript] 纯文本查看 复制代码
Page({
  data:{
   attachCertBeginDate:'2017-01-15',
   attachCertEndDate:'2017-02-16',
   bStartDate:'1997-01-15',
   bEndDate:'2017-01-15',
   eStartDate:'2017-02-16',
   eEndDate:'2037-02-16'
  },
  onLoad:function(options){
  },
  onReady:function(){
  },
  //开始时间事件处理
  datePickerBeginChange:function(e){
  var that = this
  that.setData({
    attachCertBeginDate:e.detail.value
  })
},
//证件截止时间事件处理
datePickerEndChange:function(e){
  var that = this
  that.setData({
    attachCertEndDate:e.detail.value
  })
}
})
发现如果都把两个组件的结束end或者start属性去掉 就不会出现问题
点击第二个时间组件时  如果它的start属性值不在上面一个时间组件start到end值的范围之内,就会出现闪退问题


相关讨论:
安卓下hidden会显示placeholder的文字
安卓下hidden会显示placeholder的文字
如下图所示,第二个页面是用hidden隐藏的,切换tab修改hidden的值
23.jpg 22.jpg
刚刚试了一下 用类去控制第二个页面的显示和隐藏,display:none的结果和用hidden一样,但是用visibility: hidden的结果如下图.
24.jpg
又试了一下,一般的textarea不会这样,加上了
border: 1px solid #e5e5e5;
或者
padding: 10rpx;

就会触发这个问题
解决办法就是在tab切换之前先把textarea样式设置为: border: none; padding: 0;


有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
你忘了还有一个安卓和IOS的问题,wx.showActionSheet()这个方法在开发者工具上正常,在IOS上也正常,在安卓机上不正常

评分

参与人数 1浮云 +10 收起 理由
天下雪 + 10 赞一个!

查看全部评分

每个人的一生都会遇到一个人,她(他)打破你的原则,改变你的习惯,成为你的例外!
xiaozhu8023u 发表于 2017-3-27 17:11
你忘了还有一个安卓和IOS的问题,wx.showActionSheet()这个方法在开发者工具上正常,在IOS上也正常,在安卓 ...

这种还有很多,毕竟我收集的就不完整。。。假如你发现跳坑贴内没有的东西,欢迎帮我补充一下,以后看到的人也可以做一个参考。

新增案例:
官方回答会标注官方回答;

问题:
二维码参数
怎么获取二维码里的参数值,比如pages/index/index?canshu=cs,怎么获取cs这个参数值
答:Can
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/app.html

问题:

wx.request的haeder


更新到最新版本,这个header设置还是有问题,如果不设置会告警statusCode返回400,手动设置为application/json也告警,我设置为application/xml就好了不知道什么情况
官方回答:林超
400是服务器返回 而非工具




新增案例:本地验证域名调试通过,真机无法取得数据
在企业注册的小程序可以看到数据,
我自己个人注册的小程序看不到数据,代码一样,调用的域名一样,PC上有数据
打开调试没有错误信息,没有加载域名,在安卓,IOS8.2,9.0都测试过,没有数据

勾选开发环境不效验请求域名,试过还是没有,新注册另一个个人的小程序还是不行,用预览和体验版都浏览过都不行,但是用企业注册的可以看到数据

官方回答:林超
检查下回包错误信息是什么

看描述应该是服务端对请求做了校验导致没有返回 或者 空返回

新增案例:
部分设备报An SSL error has occurred 错误
调用接口报错:An SSL error has occurred and a secure connection to the server cannot be made
3.jpg
其他手机都正常,是特定设备报错.这台手机系统是英文的.

请问要怎么解决?
问题已解决,特此记录.
发生这个问题的原因是win服务器下默认开启的是SSL 2.0,没有TLS,所以需要手动添加TLS.
如果需要全版本支持.那么需要添加TLS1.0 ; TLS1.1 ; TLS1.2,然后禁用SSL,问题就解决了

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault "=dword:00000000
"Enabled"=dword:00000001
1.png
2.png


新增案例:
我的程序再测试端能得到数据,但是到了手机上就显示不出数据了。是怎么回事。
TLS版本,确认下是不是这个问题
这个tsl在哪看呢?
我之前就是可以用,吧这里的删掉了一小个,就出现了安卓不能用,苹果可以用的情况了。。

恢复回去就OK了。这种两端有一端无法访问的,你就确定下是否是这个的问题,虽然我不确定,但是这绝对是一个可能性嘛。
11.jpg



有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
发新帖
您需要登录后才可以回帖 登录 | 立即注册