爱好编程
爱好编程
  • 发布:2020-04-01 21:13
  • 更新:2023-08-15 18:05
  • 阅读:1579

程序息屏后不震动

分类:uni-app

为什么uniapp(uni.vibrateLong)程序进入后台,和息屏之后不震动,手机是正常状态非静音,之前是可以的

2020-04-01 21:13 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com

同问,兄弟解决了没?我两种写法都试了,息屏后都能成功执行回调,但就是不震动。另外在前台震动时,只要退出前台界面,震动就会立刻停掉,但震动程序还是在执行中。

y***@jwtech.com.cn

y***@jwtech.com.cn

可能是安卓版本较高,我用下面的代码可以实现app后台震动提醒
代码流程参考 https://www.jianshu.com/p/3ec9158b2041
plus API 参考:https://www.html5plus.org/doc/zh_cn/android.html#plus.android.currentWebview

function vibrate(){
try{
var Build = plus.android.importClass("android.os.Build");
//高于安卓8.0
if(Build.VERSION.SDK_INT >= 26){
var Context = plus.android.importClass("android.content.Context");
var main = plus.android.runtimeMainActivity();
var vibrateService = main.getSystemService(Context.VIBRATOR_SERVICE);
var AudioAttributes = plus.android.importClass("android.media.AudioAttributes");
var audioAttributesBuilder = new AudioAttributes.Builder();
plus.android.invoke(audioAttributesBuilder,'setContentType',AudioAttributes.CONTENT_TYPE_SONIFICATION);
plus.android.invoke(audioAttributesBuilder,'setUsage',AudioAttributes.USAGE_ALARM);
var audioAttributes = plus.android.invoke(audioAttributesBuilder,'build');

            plus.android.invoke(vibrateService,'vibrate',patern,-1,audioAttributes);  

        }else{  
            plus.device.vibrate();  
        }  
    }catch(e){  
        console.log(JOSN.stringify(e));  
    }  
}
  • 1***@qq.com

    您好,请问patern是怎么定义的?

    2023-12-08 14:32

  • 4***@qq.com

    回复 1***@qq.com: [0, 400, 1000]

    2024-04-23 16:11

要回复问题请先登录注册