DCloud_UNI_GSQ
DCloud_UNI_GSQ
  • 发布:2019-09-21 21:28
  • 更新:2019-11-12 10:48
  • 阅读:13116

uni-app App端 iOS13 无法滚动的解决方案

分类:uni-app

老版uni-app iOS App,在iOS13上会有页面无法上下滚动的问题。
需要开发者及时升级处理。
(5+App/wap2app不涉及此问题)

方式1. 升级到HBuilderX 最新版

如果是本地打包,或cli项目,同样升级到最新的匹配版本
重新打包ipa包,提交Appstore审核
对于老用户,如果你之前留有升级策略控制,那么应该判断如果是iOS13则强制引导用户去Appstore升级。

此方式除了解决不能滚动的问题,还解决了其他一些iOS适配问题,如状态栏前景颜色、状态栏高度获取等细节。

对于使用非自定义组件编译模式的应用,升级HBuilderX还不够,还需要升级适配自定义组件编译模式,否则iOS13上还是无法滚动。

方式2. 不升级HBuilderX或通过wgt更新处理此问题

如果你的app无法短时间内升级HBuilderX,或者希望用wgt更新来强迫用户升级,可以使用如下方式

  1. 在 HBuilderX 安装目录搜索并找到 uniappview.html 文件(Mac:HBuilderX.app/Contents/HBuilderX/plugins/weapp-tools/template/common/uniappview.html;Windows:HBuilderX\plugins\weapp-tools\template\common__uniappview.html)
  2. 打开 __uniappview.html 文件,进行编辑
  3. <script src="__uniappes6.js"></script> 前插入如下代码
    <script>  
    (function() {  
    if (typeof plus === 'object' && plus.os.name === 'iOS') {  
      var time = 0  
      document.addEventListener('touchstart', function(event) {  
        time = Date.now()  
      }, {  
        passive: true  
      })  
      var webview = plus.webview.currentWebview()  
      webview.__origin_getStyle = webview.getStyle  
      webview.getStyle = function() {  
        if (Date.now() - time > 100) {  
          return this.__origin_getStyle()  
        }  
      }  
    }  
    })()  
    </script>

插入后效果:

修改完成后,重新编译项目即可。可在HBuilderX发行菜单中制作wgt资源进行热更新。

这种方式仅作为临时使用,解决iOS13不能滚动的问题。其他有些细节体验问题,还需完整升级HBuilderX、重新打ipa包提交才能解决。
此方案适用于由于某些原因不能升级 HBuilderX 的用户,用以临时解决 iOS13 上页面无法滚动的问题,请大家尽快升级新版 HBuilderX。
非自定义组件模式,如果不能及时升级为自定义组件模式,也可使用方案2来解决滚动问题。

升级HBuilderX 2.3新版可能会遇到其他问题,见社区公告。

4 关注 分享
DCloud_uniCloud_WYQ 1***@qq.com 1***@qq.com ZFPartric

要回复文章请先登录注册

CharkLeo

CharkLeo

我方法2改了文件后,离线打包发觉页面都出不来。显示异常页面
2019-11-12 10:48
yqcim

yqcim

我遇到了一个无法滚动的问题也已经解决了。

结论:IOS13下滚动是没有问题的。(Alpha版本+useComponent:true)

解决过程:按照大佬@瞳player 给的方案,新建立了一个空白工程,一个页面,写了一个1000的数组来渲染,发现除了渲染慢点之外(list+cell),滚动是OK的。

后来再仔细把原来的工作无关的组件注释掉,发现是CSS的问题导致的无法滚动。也是比较低级的一个错误了。。正好昨天刚刚升级了xcode,结果就无法滚动了,于是就找IOS13的问题,开始方向就错了。
2019-10-08 11:41
2***@qq.com

2***@qq.com

试试
2019-09-27 12:52
jasonlaw

jasonlaw

方法一真的那么坑吗?有人试过吗?为什么都是用方法二
2019-09-27 12:35
ManX

ManX

我试了2可以
2019-09-25 10:00
a***@goodbuild.cn

a***@goodbuild.cn

方法2试了还是不行,方法1 之前趟过几次坑,不敢随便升级
2019-09-24 11:42
唉呀妈呀

唉呀妈呀

使用了方法二还是不可以
2019-09-23 19:42
迅课科技

迅课科技

回复 DCloud_UNI_GSQ :
换了,整个PandoraApi.bundle都换了
2019-09-23 18:34
DCloud_UNI_GSQ

DCloud_UNI_GSQ (作者)

回复 迅课科技 :
.dat 文件替换了没?
2019-09-23 17:13
VkLuo

VkLuo

用上一版本的hbuilderx打包,然后用【方式2】加代码,搭配上2.3的基座,离线打包就可以正常滑动
2019-09-23 16:30