更新记录
1.0.0(2022-09-30)
新版首发
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
KJ-NotificationAndroid
常驻通知栏、进度条通知栏(andorid)
注意
1.andorid 自定义通知的图标和小图标,不设置的话,默认是插件里的默认图标
需要在 主目录->nativeplugins->KJ-NotificationAndroid->android->res->drawable 下配置添加 kj_audio_push_small.png(小图标) 和 kj_audio_push.png(图标)
详情下载参考示例项目
小图标设计要求是特殊的, 特别需要注意以下两点:
a.必须是透明的底;
b.内部形状颜色为白色最佳; (是其他颜色也可以, 但好像最终也会转成,通知栏显示白色, 通知左上角图标灰色)
andorid push_small小图标注意事项:https://ask.dcloud.net.cn/article/39429
使用
<template>
<view class="content">
<button type="primary" @click="addPermanentNotification">添加普通常驻通知</button>
<button type="primary" @click="addPermanentNotification2">添加进度条常驻通知</button>
<button type="primary" @click="removePermanentNotification">移除常驻通知</button>
<button type="primary" @click="removeAllPermanentNotification">移除所有常驻通知</button>
</view>
</template>
<script>
const KJNotificationAndroid = uni.requireNativePlugin('KJ-NotificationAndroid');
var interval = null;
var value = 0;
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
},
methods: {
addPermanentNotification() {
var dic = {
"id": 1,//显示的id
"isForeground": true,//是否使用前台通知,普通通知,要设置为true
"builder": {
// "progress": { //进度条
// "max": 100,//最大值
// "progress": value,//当前进度
// "indeterminate": false //是否左右滚动进度条
// },
"isSetSmallIcon": false,//是否设置小图标,false-设置系统的,true-设置为自定义的
"isSetLargeIcon": false,//是否设置大图标,false-不展示 true-设置为自定义的
"notificationID": "1", //android8才支持,通知ID
"notificationName": "主服务", //android8才支持,通知名
"notificationTitle": "普通常驻通知标题", //通知标题
"notificationText": "普通常驻通知文本", //通知内容
"isSetNotificationVibrate": false //是否设置震动,由于android机制,通知设置过了,就不能再修改,如果要修改,要先修改notificationID
}
}
KJNotificationAndroid.addPermanentNotification(dic, (res) => {
console.log(JSON.stringify(res))
});
},
addPermanentNotification2() {
if(interval != null) {
clearInterval(interval);
interval = null;
}
interval = setInterval((res) => {
if (value > 100) {
this.removeAllPermanentNotification();
clearInterval(interval);
interval = null;
value = 0;
return;
}
var dic = {
"id": 2,//显示的id
"isForeground": false,//是否使用前台通知,普通通知,要设置为true
"builder": {
"progress": { //进度条
"max": 100,//最大值
"progress": value,//当前进度
"indeterminate": false //是否左右滚动进度条
},
"isSetSmallIcon": false,//是否设置小图标,false-设置系统的,true-设置为自定义的
"isSetLargeIcon": false,//是否设置大图标,false-不展示 true-设置为自定义的
"notificationID": "2", //android8才支持,通知ID
"notificationName": "主服务", //android8才支持,通知名
"notificationTitle": "下载进度", //通知标题
"notificationText": value+"%", //通知内容
"isSetNotificationVibrate": false //是否设置震动,由于android机制,通知设置过了,就不能再修改,如果要修改,要先修改notificationID
}
}
KJNotificationAndroid.addPermanentNotification(dic, (res) => {
console.log(JSON.stringify(res))
});
value++;
}, 100);
},
removePermanentNotification() {
/**
* isForeground 为 false,这个方法才有效
* */
var dic = {
"id": 1
}
KJNotificationAndroid.removePermanentNotification(dic, (res) => {
console.log(JSON.stringify(res))
});
},
removeAllPermanentNotification() {
if(interval != null) {
clearInterval(interval);
interval = null;
}
KJNotificationAndroid.removeAllPermanentNotification({
"isForeground": false
},(res) => {
console.log(JSON.stringify(res))
});
// KJNotificationAndroid.removeAllPermanentNotification({
// "isForeground": true
// },(res) => {
// console.log(JSON.stringify(res))
// });
}
}
}
</script>