iOS js交互直接卡死的问题

Posted CrazyApes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS js交互直接卡死的问题相关的知识,希望对你有一定的参考价值。

新手入门
请多指教

前言

由于页面部分统计图使用的javascript中的eChart库实现,所以最近的需求改动中,需要处理部分交互问题。其中有一个交互,在ios12中直接卡死了。。。
嗯,测试部有一部iOS12的手机。。。

问题定位

通过逐步排查,最终定位到在执行EChart.dispatchAction时出现问题。

myChart.dispatchAction(
    type: 'showTip',
    seriesIndex: 0,
    dataIndex: index
);

参考大家讨论的常见交互卡死的资料,尝试了很多方法。
比如:在js端使用 setTimeout(function(), 1)
比如:在iOS端使用 performSelectorOnMainThread

最终结果都不太满意。
不过基本可以确定是类似的问题。

然后这个bug还有个特殊的情况,在高版本上是没有问题的。只有在12以下版本出现了类似问题。
介于这个想法,看看是不是有什么升级的方法。

查看代码的时候,才注意到项目使用的还是 UIWebView
一查资料,好嘛,已经不推荐使用了。
现在推荐的 WKWebView

UIWebView 更换为 WKWebView

查看了下相关的Api之后,做了简单的更换处理。

运行代码测试。

直接没问题了!

结语

挺无语的,还是要时刻关注新Api动向,及时更新app中的相关功能。

以上是关于iOS js交互直接卡死的问题的主要内容,如果未能解决你的问题,请参考以下文章

我的myeclipse经常出现创建css、js文件时卡死的情况,是怎么回事?我的版本是Version: 10.0

关于Ubuntu18.04谷歌浏览器经常卡死的解决

wpf卡死不响应任何交互

Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析

解决终端SSH连接服务器一段时间不操作之后卡死的问题

多线程委托Invoke解决winform界面卡死的问题,并带开关