拜仁已伤
拜仁已伤
  • 发布:2018-11-08 16:08
  • 更新:2019-04-24 17:11
  • 阅读:3541

Native.JS监听手机锁屏,解锁,开屏

分类:Native.js
var receiver;  
mui.plusReady(function() {  
    main = plus.android.runtimeMainActivity(); //获取activity  
    // 广播接收  
    var ALARM_RECEIVER = "alarm_receiver";  
    receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
        onReceive: function(context, intent) { //实现onReceiver回调函数  
            var Intent = plus.android.importClass('android.content.Intent');  
            console.log(intent.getAction());  
            //action = intent.getAction();  
            if(intent.getAction() == Intent.ACTION_SCREEN_ON) {  
                console.log('开屏')  

            } else if(intent.getAction() == Intent.ACTION_SCREEN_OFF) {  
                console.log('锁屏')  

            } else if(intent.getAction() == Intent.ACTION_USER_PRESENT) {  
                console.log('解锁')  
                        }  
            result.textContent += '\nAction :' + intent.getAction();  
            main.unregisterReceiver(receiver);  
        }  
    });  
    var IntentFilter = plus.android.importClass('android.content.IntentFilter');  
    var Intent = plus.android.importClass('android.content.Intent');  
    var filter = new IntentFilter();  
    filter.addAction(Intent.ACTION_SCREEN_ON);  
    filter.addAction(Intent.ACTION_SCREEN_OFF);  
    filter.addAction(Intent.ACTION_USER_PRESENT);  
    main.registerReceiver(receiver, filter); //注册监听  

})  

代码已测试过了ctrl+c直接使用

2 关注 分享
keoy DCloud_heavensoft

要回复文章请先登录注册

452857334@qq.com

452857334@qq.com

回复 452857334@qq.com:
解决了 感谢分享!
2019-04-24 17:11
452857334@qq.com

452857334@qq.com

回复 452857334@qq.com:
但是用上面的这段代码监听锁屏实效了,请问是什么原因?
2019-04-24 16:17
452857334@qq.com

452857334@qq.com

我用的document.addEventListener('plusready',这里放复制上面的函数代码,false);
监听程序切换前台后台是可以生效的,比如
document.addEventListener("resume",function(){
clearTimeout(myTimeout);
}, false );
2019-04-24 16:17
特别平凡的人

特别平凡的人

17:19:20.820 解锁 at index.html:25
17:19:20.851 ReferenceError: result is not defined
请问result 是什么,控制台会报错?
2019-03-07 17:25
小生复小生

小生复小生

result.textContent += '\nAction :' + intent.getAction();这句话没用吧,但是我这边有这句话报错:result is not defined。 三个广播都能收到。但是注释掉这句话不报错了,但是只能监听到锁屏广播,另外两个就没反应了。
2018-12-07 09:52
拜仁已伤

拜仁已伤 (作者)

回复 wangsongbai1231@163.com:
uniapp在App.vue里面有onLaunch onShow onHide监听方法
2018-12-03 16:44
wangsongbai1231@163.com

wangsongbai1231@163.com

uniapp里没法用吧?
2018-11-30 20:23
1679726649@qq.com

1679726649@qq.com

好像有bug
2018-11-30 20:21
1679726649@qq.com

1679726649@qq.com

好像有bug
2018-11-30 20:21
keoy

keoy

好棒
2018-11-08 16:22