IOS端点击出现延迟解决方案

作者:ipwas 更新时间:2020-04-04 11:55

IOS端点击出现延迟?我应该怎么做?

当我们在IOS端使用onclick事件时会有300ms点击延迟,因此apicloud有专门解决方案如下:


使用 tapmode 属性,优化点击事件处理

默认页面加载完成后,引擎会对 dom 里面的元素进行 tapmode 属性解析,若是之后用代码创建的 dom 元素,则需要调用该方法后 tapmode 属性才会生效.


解决方法一:

<!--[ 在对应的元素上加上 tapmode 属性 ]-->
<a href="javascript:void(0);" onclick="test()" tapmode>ipwas.cn</a>

如果是动态插入的元素则需要额外使用JS方法

api.parseTapmode();
// 该方法在你动态插入的位置调用。元素也需要加tapmode 不然不会生效。



解决方法二:

使用api.openWin() 、 api.openFrame 、api.openFrameGroup 打开页面时使用useWKWebView参数。

看下方使用列子

// api.openWin() 方法
api.openWin({
    url:"",
    name:'',
    useWKWebView:true // 使用WKWebView来加载页面
});

// api.openFrame() 方法

api.openFrame({
    url:"",
    name:'',
    useWKWebView:true // 使用WKWebView来加载页面
});


// api.openFrameGroup() 方法

api.openFrameGroup({
    name: 'group1',
    rect: {
        x: 0,
        y: 0,
        w: 'auto',
        h: 'auto'
    },
    frames: [{
        name: 'frame1',
        url: 'frame1.html',
        useWKWebView:true,// 使用WKWebView来加载页面
        bgColor: '#fff'
    }, {
        name: 'frame2',
        url: 'frame2.html',
        useWKWebView:true,// 使用WKWebView来加载页面
        bgColor: '#fff'
    }]
}, function(ret, err) {
    var index = ret.index;
});

也可以默认使用全局方案:

可以在config.xml全局配置useWKWebView字段来使用:
<preference name="useWKWebView" value="true" />


本站原创谢绝转载!