uni-app 自定義發送訊息通知彈框
先判斷是否有權限,沒有就去設定
// An highlighted block
permissions() {
var btnArray = ["取消", "去設定"];
// #ifdef APP-PLUS
if (plus.os.name == 'Android') { // 判斷是Android
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");
var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();
// 未開通‘允許通知’權限,則彈窗提醒開通,并點擊確認后,跳轉到系統設定頁面進行設定
if (!areNotificationsEnabled) {
uni.showModal({
title: '通知權限開啟提醒',
content: '您還沒有開啟通知權限,無法接受到訊息通知,是否前往設定?',
confirmText: '允許',
cancelText: '不允許',
success: () => {
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);
}
})
}
} else if (plus.os.name == 'iOS') { // 判斷是ISO
var isOn = undefined;
var types = 0;
var app = plus.ios.invoke('UIApplication', 'sharedApplication');
var settings = plus.ios.invoke(app, 'currentUserNotificationSettings');
if (settings) {
types = settings.plusGetAttribute('types');
plus.ios.deleteObject(settings);
} else {
types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes');
}
plus.ios.deleteObject(app);
isOn = (0 != types);
if (isOn == false) {
uni.showModal({
title: '通知權限開啟提醒',
content: '您還沒有開啟通知權限,無法接受到訊息通知,是否前往設定?',
confirmText: '允許',
cancelText: '不允許',
success: () => {
var app = plus.ios.invoke('UIApplication', 'sharedApplication');
var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');
plus.ios.invoke(app, 'openURL:', setting);
plus.ios.deleteObject(setting);
plus.ios.deleteObject(app);
}
})
}
}
// #endif
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/281295.html
標籤:其他
上一篇:【Swift編程基礎】P9-16
