用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

2017-3-21 12:08:23 天下雪原创达人 造轮子 人生巅峰 楼主 14946
本帖配合此帖,共同辅助解决真机相关问题:跳坑《一百四十》Android安卓真机相关问题

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

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

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

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

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

1:请求数据问题;原因一般是tls版本不足1.2导致;
2:ssl证书问题;ios10下有部分证书不可用;
3:ios8对flex支持的问题;
4:ios对某些es6函数不支持
5:ios对某些js函数不支持:比如ios上加密不识别CharAt方法和js的btoa、atob方法

官方说明:
代码文件必须 UTF8 编码
iOS下仅支持 UTF8 编码格式,最新版本的开发者工具会在上传代码时候对代码文件做一次编码格式校验。


细节点说明及es6支持度部分,请参考安卓真机问题说明贴内说明:

0.15.152900更新变化:
修复 API wx.showNavigationBarLoadingiOS 下首次调用可能失败的问题
修复 API wx.onBackgroundAudioStop 在锁屏情况下偶现无法触发回调的问题
修复 组件 <video /> 封面图片在 iOS 下会未自适应的问题
修复 组件 <picker/> iOS 日期选择器,第二次选择只更新年份的情况下,对应月份没有更新的问题
修复 iOS客户端 打开个人热点并有连接时,tabBar 显示异常的问题



核心问题:ios无法请求数据的问题:跳坑指南《七十一》微信小程序真机预览跟本地不同的问题
1:本地可以看到数据,ios不行,安卓可以;(请同时测试ios9,ios10等多个苹果机型及IOS版本以便确定非独特某个ios版本的问题)
     可能是tsl版本问题不支持1.2导致,部分安卓可以允许tsl低于1.2而正常显示,而苹果不行;
     解决方法:参考此帖排查问题并修复:request:fail错误(含https解决方案)(真机预览问题
     可能是证书不受信任:苹果支持的证书列表:https://support.apple.com/zh-cn/HT204132
     假如是startssl及沃通的证书,可能无法使用,建议使用阿里云等证书;错误提示:        ios10.2及以上对证书有更高的限制,假如在此版本系统上无法使用,可能是证书问题;
此服务器的证书无效,您可能正在连接
特殊情况:部分苹果手机可以,部分不可以,请查看不可以苹果手机的ios版本,因为如上所说,ios10.2等最新ios版本对证书有更高的要求,部分被惩罚的证书可能不再受到信任;

特殊情况二:TLS是1.2,但是访问时是TLS1.0,可能是JDK版本不足或者其他原因导致的;


相关文章:
ios下navigateTo报navigateBack with an unexist webviewId 错误的原因
小程序tabBar在安卓和IOS下显示不一致
由一个符号引发的 IOS 日期格式出错惨剧
IOS系统中,倒计时(setInterval函数)失效的问题
【IOS跳坑】hidden在个别组件无效
ios上日期转时间戳出现的问题,Data.parse()获取时间戳IOS不兼容
官方确认问题:(问题收集时间为3月21日,未来可能已经被解决,仅供参考)
Q:苹果map经纬度要求是数字,但title不弹出信息,两个bug望修复。
A:谢谢反馈,下个版本会修复。
Q:小程序用户端的bug,苹果机出现"打开失败,无法打开小程序:加载失败:101"
A:谢谢反馈,这个是一个已知的问题,我们会尽快修复。
Q:<swiper>真机测试时, 轮播图切换会出现<Image>滞后加载。
A:多谢反馈,iOS 上是有这个问题,下个版本就能修复。
Q:wx.scanCode()在IOS10 6.5.5版本无法唤醒扫一扫界面
A:不太建议在 onLoad 里做一些和界面相关的操作,因为这个时候客户端可能还没有准备好视图界面;
     下个版本后可以在 onShow 里调用(目前 onShow 时机也有点小问题),当前可以加一个 setTimeout 延后一些调用
Q:playVoice api 回调函数触发时机。在开发工具中 无论是success 还是 complete 回调函数,都是在刚开始播放的时候触发,在iOS中则是在这段音频播放完成后触发,请问这是开发工具的bug 还是 真机环境的bug ?
A:这个是目前接口设计的一个缺陷,实际开发中以客户端表现为准,播放语音接口后续版本会有升级,在开始播放和播放完成都有对应事件。
Q:就算引入了es6-promise ios9 ios8 也无法使用Promise 但是也不报错,打印Promise 显示null,安卓没事。
A:谢谢反馈,迟点我们会上个 ES6 支持版本解决。
Q:iOS10.2地图问题。在小程序中的地图页面点击上面三个点,直接点击遮罩层关闭功能,会导致地图无法定位到当前已经定位到的位置。
A:已知问题,下个客户端版本修复。
Q:picker日期模式iOS真机bug。选择了非start年份时,用户获得的月份 = 用户选择的月份 + start指定的月份 - 1
A:多谢反馈,尽快解决。
Q:swiper组件在ios上向右滑动返回时的bug。
A:谢谢反馈。这个问题已知,我们会尽快解决。
Q:showToast bug,在一个request请求前showToast(loading类型,duration为10000),在请求成功后hideToast,再弹出一个success的Toast,这个Toast的显示的图标是loading。
A:已知晓,谢谢反馈。该问题只在 iOS 下出现,尽快解决。
Q:IOS平台上调用地图有时会出现必应地图
A:已知的bug,我们会在下个版本修复,谢谢反馈。
Q:swiper的swiper-item为video时渲染出错.
A:谢谢反馈。
  这个是已知问题,实际上在ios上的处理比较复杂。我们会尽快修复。
Q:background: url: iOS渲染不出图片。
A:文档有说明 background 不支持本地路径的图片。
Q:小程序安卓https请求正常返回数据,但是iOS10.2版本请求不通。
A:因为当时https证书用的startcom提供的免费证书,但是此证书iOS并不认为是安全的,是不被信任的。

相关讨论:
小程序里使用 iconfont,font-face的src能使用网络地址吗?
[AppleScript] 纯文本查看 复制代码
@font-face {
   font-family: 'fontello';
   src: url('http://cdn.example.com/iconfont.ttf') format('truetype');
   font-weight: normal;
   font-style: normal;
   line-height: 1;
}


发现src如果用网络地址就不能在iOS上显示,Android和开发工具上是可以的。src用base64值则都是可以显示的。
iOS确实是要换https,问题解决了


相关讨论:
开发工具一切都ok,Android也ok  ios就不行

原因:
使用new Date("2016-11-01 00:00:00")方式转换日期,在开发工具中没问题,但是在IOS中不可用,使用new Date(2016,11,1)。


相关讨论:
初学者:request fail url not in domain list在做测试wx.request提交时,使用微信开发者工具进行测试,没有问题;但是在苹果电脑上测试,就会返回失败 request:fail url not in domian list ,打开测试后提交也没有问题,请问这是哪块配置的不对呢?
开发者工具 - 项目 - 开发环境不校验请求域名及 TLS 版本。

如果小程序需要正式发布,服务器侧请使用 https


相关讨论:
苹果7,提示内部错误,内存占用过多其它手机没有提示报错,检查代码也不错在内存泄漏,请问这是什么原因引起的,怎么解决。。。
解决了,页面做的预加载,列表中有图片,图片渲染的太多了(其实不算多),解决办法就是不当屏展示的图片,不让它渲染


相关讨论:
map地图标记点,为啥苹果不可以呢最近开发一个地图打点的功能。我后台获取markers,然后标记到地图上,滑动到一定距离,会再次获取,安卓正常显示,没任何问题,可是苹果打开只有地图没有标记点,为什么呢,难道这个不支持苹果手机吗?我用了多个安卓都没问题,多个苹果都不行,要怎么弄呢
确实是bug不过我发现解决办法了,这个bug是,经纬度必须是数字,后台获取json都当成文本,所以必须强制转换成number类型就可以了。


相关讨论:
苹果手机不能正常调用wx.openLocation
调用wx.openLocation,安卓手机可以正常打开地图,苹果手机点击无反应。
使用调试方式在苹果手机上打印出信息,发现调用该api失败。
1.jpg 3.png
已解决。
苹果手机里似乎把组件上绑定的参数都当作字符串了,所以认为坐标点不正确,需要强制转换成number类型。

var lat  = e.target.dataset.lat;
改成
var lat  = Number(e.target.dataset.lat);


相关讨论:
wx.uploadFile在手机上返回http码403wx.uploadFile在开发工具一切正常,可以上传图片,但在手机里(安卓苹果都一样),wx.uploadFile上传图片返回403码(已经配置好了安全域名),求解答
服务器cdn的问题,取消的cdn。


相关讨论:
IOS真机上显示为NaN-NaN-NaN
在一个功能上实现显示日期跟星期几,开发完后在开发工具上显示没问题,在安卓机上跑也没什么问题,但在IOS系统的苹果机上显示,时间跟星期几显示为NaN-NaN-NaN,求解
11.jpg
wxml:

<view class="container">
<view class="top">
<view>{{weather.date}} {{weather.week}}</view>
<view>{{weather.city}}</view>
<!--<view>{{weather.updatedate}}</view>-->
</view>
</view>
js:

tempweather["date"] = utils.formatDate(basic["update"]["loc"]);
//当天日期
tempweather["week"]=utils.formatWeekdaybydate(basic["update"]["loc"]);
//周几
function formatDate(sdate) {
  var vdate= new Date(sdate)
  var year = vdate.getFullYear()
  var month = vdate.getMonth() + 1
  var day = vdate.getDate()
  return [year, month, day].map(formatNumber).join('-')
}
function formatWeekdaybydate(sdate) {
    var vdate = new Date(sdate);
    var weekday = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
    var index = vdate.getDay();
    return weekday[index];
}

找到原因了,是兼容性问题,New Date() 这个的参数不规范引起,在IOS比较严格,我传入的是”2016-12-12 00:30” 没有秒,我直接格式化成日期就OK了


相关讨论:
iOS使用audio,当在播放状态进入锁屏,在屏幕上发现有音乐的src地址 这个是否可以隐藏掉src地址,因为我不想让用户看到这个地址
暂时先做了一个workaround,在锁屏的时候把audio的src设置为#,进入前台的时候再设置回来


相关讨论:
为什么苹果ios的微信下拉刷新不能用?遇到一个很奇怪的问题,json里已经开启下拉刷新,而且在页面定义了 onPullDownRefresh,电脑IDE和安卓手机测试都可以正常下拉实现刷新逻辑,但在苹果机上怎么拉都没反应,也没有触发onPullDownRefresh事件,但我用苹果机看今日头条的小程序,是可以下拉刷新的,也就是说我写的没问题,电脑和安卓都正常,苹果机不行,可苹果机打开别的小程序可以实现下拉,又说明我写的有问题,陷入了死胡同,有没有高手解答一下,谢谢啦!
解决了,有个小问题就是 "enablePullDownRefresh":true,一定要这样设置,true一定不要加双引号,不然电脑端和安卓端都可以正常,但苹果端就用不了,希望给大家提个醒吧,关于楼上说的动画,你设置下背景色和动画颜色就可以了,把背景色和动画颜色设置成不同的,就可以显示了,例如
"backgroundColor": "#eeeeee",    "backgroundTextStyle": "light"


相关讨论:
css的z-index 在iOS真机上无效吗想在video上加一个loading的图标,使用z-index在模拟器上能到video前面去,但是到真机上却不起作用,手机是iPhone6
map,video,canvas,textarea是原生组件,层级位于webview之上
所以zindex无效


相关讨论:
iOS 8布局混乱 -- 开发版本无问题,体验版本有问题
怀疑是上传release的时候加了点什么引起,暂时无头绪。
有遇到过的么?


发现其实开发工具的「项目」里面有个地方,勾选后会自动补齐。
测试后发现选择后即可。


相关讨论:
小程序对微信版本、IOS版本、Android版本的要求是什么样子的? 小程序对微信版本、IOS版本、Android版本的要求是什么样子的?至少目前我在IOS7上、微信6.5.1上不支持小程序
> = iOS8

>= Android 4.0


相关讨论:
ios设备上 视频无法播放(安卓可以播放,视频是先下载后存储)
先调用wx.downloadFile下载视频文件;
然后调用wx.saveFile存储文件到本地;
返回值都OK;然后设置video组件的src;
测试时候在 微信调试工具和安卓机器上正常,ios设备上返回值也都是ok,但是视频却是黑屏无法播放
问题解决了!微信小程序的视频播放 src 是可以 用外部动态链接的,不需要savefile哦


相关讨论:
markers在ios上面无法显示出来,这是为什么
    <map id="my_map" longitude=""  latitude=""  show-location="true" scale="16" markers="{{markers}}"  bindmarkertap="now_work" ></map>这是使用的组件;
    这是在js里面设置的markers的两个点
   markers: [{
                  iconPath: "../../position.png",
                  id: 0,
                  title:"他家",
                  latitude:"23.13270746000000",
                  longitude:"113.26529471377000",
                  width:55,
                  height:55,
            },{
                  iconPath: "../../position.png",
                  id: 1,
                  title:"我家",
                  latitude:"23.13270746000049",
                  longitude:"113.26629671376984",
                  width:55,
                  height:55,
            }
    ],
我在安卓和开发者工具里面都能看到这个点,可是我在ios上面无法看到这两个点,程序运行没有报错,这是为什么??????

问题是在双引号那里,安卓会根据微信的规则转成数值输出,但是苹果不会,苹果会依然按照字符串输出,所以在苹果显示不出来
latitude:23.1534923,
longitude:113.3049623,
这两个的值不能添加双引号
latitude:"23.13270746000049",
longitude:"113.26629671376984",
这样写,苹果会当做字符串输出,苹果不会转化成数值,但安卓会,所以安卓可以显示出来,但苹果不行,就是因为这里的问题


相关讨论:
ios8的微信6.5.2 view的flex-direction:row样式无效其他ios9,ios10,android和开发工具模拟器都没问题,就多个ios8体验用户截图反馈布局混乱,经查view的flex-direction:row样式全部没有生效导致,不知道如何处理,希望官方给个办法
不要把flex-direction:row;这样的弹性布局的代码写到wxml里面
iOS8出的时候关于这些标准还有问题,所以需要加上-webkit-这样的前缀
相反你如果写到wxss里面的话,倒是微信的开发工具似乎会自动帮你补全这些应该加的前缀


相关讨论:
ios手机上,使用video空间播放一些视频会导致微信崩溃
比如这个视频: http://db.http.fuyin.tv:8016/html5/10圣乐教室/宋大叔交指挥第二单元进阶版/宋大叔交指挥第二单元进阶版01.mp4

平台:iOS
微信版本:6.5.3
手机:iphone6
iOS版本:10.2
不是因为太大,是因为视频链接带中文,没有转码,用encodeURI编码之后的链接就好了encodeURI('http://db.http.fuyin.tv:8016/html5/10圣乐教室/宋大叔交指挥第二单元进阶版/宋大叔交指挥第二单元进阶版01.mp4')

相关讨论:

ios里icon的bindtap无效radio的那个icon也点不了
试试catchtap
也有可能是css样式问题,操作范围小于显示范围


相关讨论:
ios 走对象 方法出现错误
微信小程序 d global code

安卓没问题,这是啥毛病。
已解决, 变量申明问题 ,漏写了个var 因此变成了全局变量,而且这个变量是 整数型的所以 d 应该是代表数字类型变量,


相关讨论:
小程序在ios10.2版本中没有数据显示小程序开发的时候发现在Android数据获取正常,ios10.2版本以下也可以正常获取数据,但是ios10.2就获取不到是什么原因
这个问题是证书的问题,ios10.2对证书的要求比较高,今天换了一个证书后,发现可以正常获取数据了


相关讨论:
微信小程序在真机测试的时候无法播放m4a音频,mp3音频可以正常,你遇到过吗?
我的是 url 编码问题,我的音频链接里面有中文字符, url 编码后就好了!


相关讨论:
IOS10以上版本无法读取服务器内容IOS10以下版本和Android全系都可以读取服务器内容 请问,是IOS10与微信小程序不兼容么
我检查了一下服务器是支持TLSv1.2的
问题出在证书身上 WoSign、StarCom之流不被Apple、Firefox信任了


相关讨论:
ios设备无法在视频上面覆盖角标 在视频上面希望覆盖一个标示角标(右上角位置),小程序的安卓可以,但ios覆盖后展示不全,无法正常显示
因为video在ios上是原生组件,层级位于webview之上,优先级最高,所以用定位覆盖不了


相关讨论:wx.navigateTo api ios跳转页面失败
                console.log('老师');
                wx.redirectTo({
                    url: '/pages/teacher/teacher'
                });
ios  wx.navigateTo接口,跳转不了,一直在当前页面不动,有人知道什么原因吗?console.log 已经走到  老师那一步了,后面的api执行不了,安卓手机就正常,iphone都不行.ps(本页面是二级页面)
12.png
问题已解决,不知道是bug还是什么原因,我在onload 方法里面  延迟2秒 再 wx.navigateTo  就可以了


相关讨论:
onPullDownRefresh 在ios中无效
下拉刷新事件在ios中无效啊,根本不执行,用scroll-view的话,上拉是直接触顶就触发的,有设么方法解决呢?
scroll-view有自己的触顶和触底事件    所以使用scroll-view时,估计是它自己的触顶事件优先级高,所以
onPullDownRefresh没有被触发


我知道这个怎么回事了,app.json里有这个配置"enablePullDownRefresh": true这个属性为true才可以下拉,我原先这个是加了引号了所以不行,这里的true不能加引号,还有就是你的这个文件的json这里的enablePullDownRefresh这个属性也检查一下,app。json是全局的,这里写了,单个文件就不用写了


相关讨论:
ios 获取用户位置问题
因为要用到wx.chooseLocation函数,在执行这个函数前,必须要用户允许定位。所以需要考虑用户点击不允许获取位置的情况。
android没有问题可以在用户不允许获取位置的情况下,再次提示用户是否允许获取位置。
ios不行,用户只要选择一次不允许,就无法在此提示用户是否允许获取位置。导致整个程序无法正常使用。
在onshow里面判断一下吧。

相关讨论:
微信小程序 ios上调用wx.request 返回error:  thirdScriptError:can't find  variable: btoa;at "页面地址" page   有人遇到吗?android是正常的

不要用btoa,转base64








有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
你好,我的小程序在安卓机正常,在ios就加载不了,请问是什么原因,用的的gbk编码格式。是因为这个吗?
发新帖
您需要登录后才可以回帖 登录 | 立即注册