HbuilderX3.1.8 打开手机通知权限,离线打包不能使用,也不报错,但是同样的代码离线打自定义基座包就没问题,调试也找到不问题,在线打包也没问题。
在App.vue 的onLaunch里进行的判断。
离线打自定义基座包没有问题,离线打正式包不报错,安装运行后就死在这里,让后面的自动登录也无效。
注释掉这个设置,离线打包就没问题。
按理来说,在线打包没有问题,应该是离线打包配置有问题,但是离线打自定义基座包也没有问题,就很无奈。。。。
var main = plus.android.runtimeMainActivity();
var pkName = main.getPackageName();
var uid = main.getApplicationInfo().plusGetAttribute("uid");
//var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");
//android.support.v4升级为androidx
var NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");
var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();
// 未开通‘允许通知’权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置
if (!areNotificationsEnabled) {
uni.showModal({
title: '通知权限开启提醒',
content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',
showCancel: false,
confirmText: '去设置',
success: function(res) {
if (res.confirm) {
var Intent = plus.android.importClass('android.content.Intent');
var Build = plus.android.importClass("android.os.Build");
//android 8.0引导
if (Build.VERSION.SDK_INT >= 26) {
var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);
} else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0
var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
intent.putExtra("app_package", pkName);
intent.putExtra("app_uid", uid);
} else { //(<21)其他--跳转到该应用管理的详情页
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
intent.setData(uri);
}
// 跳转到该应用的系统通知设置页
main.startActivity(intent);
}
}
});
}
3***@qq.com
- 发布:2021-04-14 09:59
- 更新:2021-04-14 10:51
- 阅读:958
HbuilderX3.1.8 打开手机通知权限,离线打包不能使用,也不报错,但是同样的代码离线打自定义基座包就没问题,调试也找到不问题,在线打包也没问题
分类:HBuilderX
3***@qq.com (作者)
谢谢,已解决。离线打包生成apk后,需要运行Gradle下的assembleRelease,之前打自定义基座包做了这一步,正式打包没做,这次对比操作,偶然运行发现做了这一步就没问题了。
2021-04-14 11:18