您需要登录后才可以操作登录 | 立即注册
关闭
楼主
yyywq

该用户从未签到

[插件API] uexBackground锁屏之后不执行 [复制链接]

772 11 发表于 2018-8-10 10:55:12

demo里面是根据测试用例复制过来,在线打包,真机小米4运行,发现锁屏之后后台定位几分钟就不运行了,麻烦技术人员看看什么原因,下面是代码的压缩包工程地址

沙发
AppCan运营
  • TA的每日心情
    开心
    2018-6-6 14:54
  • 签到天数: 128 天

    连续签到: 1 天

    [LV.7]常住居民III

    显示全部楼层 发表于 2018-8-13 17:53:08
    使用的插件版本是多少?
    板凳
    yyywq

    该用户从未签到

    显示全部楼层 发表于 2018-8-13 18:06:55
    AppCan运营 发表于 2018-8-13 17:53
    使用的插件版本是多少?

    4.0,在线打包的,能不能请开发人员下载看看什么问题,上面有链接
    地板
    AppCan运营
  • TA的每日心情
    开心
    2018-6-6 14:54
  • 签到天数: 128 天

    连续签到: 1 天

    [LV.7]常住居民III

    显示全部楼层 发表于 2018-8-14 09:45:05
    打包的时候同时勾选uexlocation和uexXmlhttpmgr这个两个插件了吗?
    5#
    yyywq

    该用户从未签到

    显示全部楼层 发表于 2018-8-14 10:01:57
    AppCan运营 发表于 2018-8-14 09:45
    打包的时候同时勾选uexlocation和uexXmlhttpmgr这个两个插件了吗?

    打包勾选了uexlocation,uexXmlhttpmgr这个网络部分没有用到,我通过计算次数用putLocalData存在手机,然后再展示出来,锁屏之后3分多钟程序就不定位了
    6#
    勿放手

    该用户从未签到

    显示全部楼层 发表于 2018-8-14 10:31:34
    我也同样的问题,用的官方测试用例,后台的server.js显示一段时间后就没动静了,而且这个插件还不支持4.0写法,uexLocation.openLocation(); 不支持坐标系类型,uexLocation.openLocation('bd09');  这样写是不行的,uexXmlHttpMgr 用4.0写法
        var req = uexXmlHttpMgr.create({
                  method:"GET",
                  url:serverURL,
                  timeout:15000,
              }); 这样也是不执行,也看不出错误反正就是不执行这段代码,我的机型是小米8,华为测试也不通过
    7#
    勿放手

    该用户从未签到

    显示全部楼层 发表于 2018-8-14 15:42:40
    勿放手 发表于 2018-8-14 10:31
    我也同样的问题,用的官方测试用例,后台的server.js显示一段时间后就没动静了,而且这个插件还不支持4.0写 ...

    经过我的反复测试发现锁屏后不上传定位是和手机系统权限设置有关,我的是小米8在系统设置-》应用设置里找到自己的app里面有个省电策略,默认是智能限制后台运行(智能识别应用及状态,并采取相应的限制措施,包括对后台联网、定位、传感器使用的限制,不影响及时消息),也就是说只要不是及时消息他都会过段时间自动给你限制了,把这个后台配置改成无限制(不采取任何措施)。更改后就可以持续定位了。建议官方优化下这个后台插件,让它默认为无限制。而且这个插件应该很久没更新过了,建议优化更新下4.0的插件写法都不支持,这个我已经测试多次了
    8#
    yyywq

    该用户从未签到

    显示全部楼层 发表于 2018-8-14 16:19:31
    勿放手 发表于 2018-8-14 15:42
    经过我的反复测试发现锁屏后不上传定位是和手机系统权限设置有关,我的是小米8在系统设置-》应用设置里找 ...

    我在小米找到神隐模式,里面有无限制设置,但是也测试过不行。你测试的其他手机型号也可以吗?能不能提供demo参考参考
    9#
    勿放手

    该用户从未签到

    显示全部楼层 发表于 2018-9-13 15:09:30
    yyywq 发表于 2018-8-14 16:19
    我在小米找到神隐模式,里面有无限制设置,但是也测试过不行。你测试的其他手机型号也可以吗?能不能提供 ...

    不是神隐模式,更多应用里搜索到自己app点开,里面有个权限相关 省电策略设置为无限制
    uexBackground.onLoad = function() {
        CCLog("onLoad 执行!")
        var result = uexBackground.addTimer(newTimerParams("timer1", "cb1", 30, 1000));
        CCLog("开始timer1,间隔为1000ms,只执行30次,结果为:" + result);


    }
    var newTimerParams = function(identifier, cbName, times, interval) {
        var data = {
            id: identifier,
            callbackName: cbName,
            repeatTimes: times,
            timeInterval: interval
        };
        var params = JSON.stringify(data);
        CCLog(params);
        return params;
    }

    uexBackground.cb1 = function(count) {
        CCLog("timer1 callback" + count);
        if (count == 2) {

            uexBackground.addTimer(newTimerParams("timer2", "cb2", 0, 500));
            uexBackground.addTimer(newTimerParams("timer3", "cb3", 0, 500));
            CCLog("开始timer2,timer3,间隔为500ms");
        };
    }

    uexBackground.cb2 = function(count) {
        CCLog("timer2 callback" + count);

    }

    uexBackground.cb3 = function(count) {
        CCLog("timer3 callback" + count);
        if (count >= 5) {
            CCLog("关闭 timer2");
            uexBackground.cancelTimer(JSON.stringify(["timer2"]));
        };
        if (count >= 7) {
            uexBackground.cancelTimer();
            CCLog("取消当前所有的timer")
            uexBackground.addTimer(newTimerParams("bgTimer", "cbBgTimer", 0, 180000));
            CCLog("开始定位并上报数据")
        };
    }

    uexBackground.cbBgTimer = function(count) {
        uexLocation.openLocation();
    };

    var XHROPID = "1";
    var locateCount = 1;
    var timestamp = 0

    uexLocation.onChange = function(lat, lon) {

        var time = new Date().getTime();
        var toPair = function(key, value) {
            return "" + key + "=" + value
        }

          if (time - timestamp > 500 ) {
            timestamp = time;
            var token = uexWindow.getLocalData("myUidL");
            var platformName = uexWindow.getLocalData('platformNameL');
            var url = (function(latitude, longitude, count, token) {
                return serverURL + "&" + toPair("lat", latitude) + "&" + toPair(
                        "lon", longitude) + "&" + toPair("platformName", platformName) + "&" + toPair(
                        "token", token);
            })(lat, lon, platformName, token);
            uexXmlHttpMgr.open(XHROPID, "get", url, "0");
            uexXmlHttpMgr.send(XHROPID);

            CCLog("send request with url:" + url);
            locateCount++;

        }

        uexLocation.closeLocation();
    }

    uexXmlHttpMgr.onData = function(id, status, result, requestCode, response) {
        CCLog("id:" + id + ",status:" + status + ",code:" + requestCode +
            ",response:" + response);
        if (status == "1" || status == "-1") {
            CCLog("finish request");
            uexXmlHttpMgr.close(XHROPID);
        };

    }
    10#
    王公子
  • TA的每日心情
    开心
    2016-10-16 15:46
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    显示全部楼层 发表于 2018-9-14 08:52:36
    勿放手 发表于 2018-8-14 10:31
    我也同样的问题,用的官方测试用例,后台的server.js显示一段时间后就没动静了,而且这个插件还不支持4.0写 ...

    您好 请问可以吧你的工程案例发给我看一下么?我邮箱327776426@qq.com
    主题:
    级别:游客
    发帖:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表