ccjuice
ccjuice
  • 发布:2017-10-26 14:38
  • 更新:2022-09-18 15:48
  • 阅读:2404

js调用Android耗时方法卡顿

分类:5+ SDK

插件开发 js调用原生耗时方法,5+页面卡死(经常性),单独在安卓页面当中运行耗时方法是没问题的。
现在js用同步方法,同步方法和异步方法都有这种现象应该是。

1调用:  
var uhomeloginfo = JSON.parse(localStorage.getItem("uhomeloginfo"));  
                 Argus = plus.plugintest.configComeNet(wifiname,pass,uhomeloginfo.uhome_access_token,"ArrayArgument!");  
2nativeplug:  
 configComeNet : function (Argus1, Argus2, Argus3, Argus4)   
        {              
             //通知Native层plugintest扩展插件运行“PluginTestFunctionSync”方法并同步返回结果                         
            return B.execSync(_BARCODE, "configComeNet", [Argus1, Argus2, Argus3, Argus4]);  
        },   
3安卓代码如图
2017-10-26 14:38 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com

我也出现同样的情况,卡死页面,谁知道解决方法告诉一声

4***@qq.com

4***@qq.com

我也出现同样的情况,卡死页面,谁知道解决方法告诉一声

4***@qq.com

4***@qq.com

有人在家吗?没人我再等会

ccjuice

ccjuice (作者)

采用h5 的异步方法exec(),正确写好原生代码与js代码。

  1. js方面 根据demo中的写法写好传入参数与回调参数
    //声明异步方法----nativeplug.js
    deviceConfigComeNetArrayArgu : function (wifiName, passWord, token, successCallback, errorCallback)
    {
    var success = typeof successCallback !== 'function' ? null : function(args)
    {
    successCallback(args);
    },
    fail = typeof errorCallback !== 'function' ? null : function(code)
    {
    errorCallback(code);
    };
    callbackID = B.callbackId(success, fail);
    return B.exec(_BARCODE, "deviceConfigComeNetArrayArgu", [callbackID, wifiName, passWord, token]);
    },
    //页面调用---***.html
    plus.plugintest.deviceConfigComeNetArrayArgu(wifiname, pass, uhomeloginfo,
    deviceConnectNetSucess, deviceConnectNetSucessFail);
  2. 原生方面(ios、Android) 正确写好返回值 OK\ERROR,以使js能正确调用成功回调函数与失败回调函数 。
    总之,js这边挺简单,按demo来就可以。原生那边应该也不难。混合开发,双方协作、解决问题。亲测js调用原生方法同步异步都好使,没问题。
  • 4***@qq.com

    不是写法的问题,亲测试异步同步都会卡住页面(插件方法耗时),卡住页面会导致js计时器停住,所有页面按钮不能点击

    2017-11-30 15:47

  • ccjuice (作者)

    settimeout()或者setinterval()的倒计时吗,有前辈跟我说过js不能开两个异步,会被压入栈,要调整业务逻辑,我们改成了css实现的动态旋转效果(css动效也有卡住过,我记不清咋不卡了了),我们页面上并没有其他的需点击区域。但是我看其他软件是有倒计时效果的,不知道是混合开发还是原生实现。

    2017-11-30 17:33

  • ccjuice (作者)

    回复 4***@qq.com:你解决了吗

    2017-12-13 15:42

  • 4***@qq.com

    回复 ccjuice: 解决了

    2019-08-06 09:13

y***@qq.com

y***@qq.com - 喜欢白嫖

我也使用异步,然而请求不执行完页面都是不能点击的,不知道什么情况.

y***@qq.com

y***@qq.com - 喜欢白嫖

作者解决了没有?能不能指点一下

初学前端

初学前端

怎么解决,方便分享一下吗。。

该问题目前已经被锁定, 无法添加新回复