uniapp写app做测试手机通知栏展示内容
uniapp写app做测试手机通知栏展示内容
以下代码:只是个简单测试能不能给手机发送消息,能不能引导打开通知权限,能不能进行跳转的功能,
增加 notify.js 以下文件
// 模拟本地通知功能export function showNotification() { // 1. 检查通知权限(Android) // #ifdef APP-PLUS if (plus.os.name === \"Android\") { const main = plus.android.runtimeMainActivity(); const NotificationManagerCompat = plus.android.importClass( \"androidx.core.app.NotificationManagerCompat\" ); // 获取主Activity和包名 // const main = plus.android.runtimeMainActivity(); const pkName = main.getPackageName(); // 检测权限状态 const isEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled(); if (!isEnabled) { uni.showModal({ title: \"通知权限未开启\", content: \"请前往设置开启通知权限\", confirmText: \"去设置\", success: () => { try { const Intent = plus.android.importClass(\"android.content.Intent\"); const Build = plus.android.importClass(\"android.os.Build\"); let intent = new Intent(); if (Build.VERSION.SDK_INT >= 26) { // Android 8.0+ intent.setAction(\"android.settings.APP_NOTIFICATION_SETTINGS\"); intent.putExtra(\"android.provider.extra.APP_PACKAGE\", pkName); } else { // 低版本通用方案 const Settings = plus.android.importClass(\"android.provider.Settings\"); const Uri = plus.android.importClass(\"android.net.Uri\"); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.fromParts(\"package\", pkName, null)); } main.startActivity(intent); } catch (e) { uni.showToast({ title: \"跳转失败\", icon: \"none\" }); console.error(e); } } }); } } // #endif // 2. 发送通知(固定内容) plus.push.createMessage( \"这是固定通知内容\", // 通知正文(死值) \"系统通知\", // 通知标题(死值) { cover: true, // 覆盖旧通知 sound: \"system\", // 使用系统提示音 payload: { path: \"/pages/profile/index\" } // 携带跳转路径参数 } );}
增加点击事件 随便个地儿
import { showNotification } from \'./notify.js\';const triggerNotify =()=> { showNotification(); uni.showToast({ title: \'已发送模拟通知\' }); }
这只是个简单测试能不能给手机发送消息,能不能引导打开通知页,能不能进行跳转的功能
以上内容如果使用HBuilderX的话,使用基座运行是可以推送了
接下来是打包成apk之后能推送的操作
参考文件地址:uniPush | uni小程序SDK【地址:https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/push.html】
我这边是用的sdk4.66,【点击进入App离线SDK下载】【地址:https://nativesupport.dcloud.net.cn/AppDocs/download/android.html#android-%E7%A6%BB%E7%BA%BFsdk-%E6%AD%A3%E5%BC%8F%E7%89%88】
奥 很烦那种别的地儿搬你文章不把你点击进别的地方路径搬过去,我就俩都放了
记得放这俩文件哈,放到libs下面
HBuilderX 3.99及以上版本所需的libs仅为:
接下来我们去开通 uniPush的推送功能:https://dev.dcloud.net.cn/pages/app/push2/index
看到这些信息了 哎!这些信息有用
接下来这块内容是官网的:
gradle配置
打开build.gradle,在defaultConfig添加manifestPlaceholders节点,如下图所示,将io.dcloud.HBuilder替换成自己的应用包名,将appid等信息替换成申请之后的appid等。
应用的app id/app key等信息,从开发者后台->unipush->配置管理->应用管理 界面查看 ** 注意:HBuilderX3.1.15之后需要添加GETUI_APPID属性 **
android { defaultConfig { manifestPlaceholders = [\"GETUI_APPID\": \"unipush的appid\", \"plus.unipush.appid\" : \"unipush的appid\", \"plus.unipush.appkey\" : \"unipush的key\", \"plus.unipush.appsecret\": \"unipush的secret\", \"apk.applicationId\":\"io.dcloud.HBuilder\" ] }}
附:配置图片
HBuilderX 3.99及以上版本的配置如下:
-
项目根目录下的build.gradle
打开项目根目录下的build.gradle
需要在项目根目录下的build.gradle下添加个推的仓库地址,如下:
allprojects {repositories {jcenter()google() // 个推的Maven仓地址。 maven { url \'https://mvn.getui.com/nexus/content/repositories/releases\' }}}
AndroidManifest.xml配置
在io.dcloud.PandoraEntry的Activity标签下追加intent-filter,注意不能和其他的intent-filter内容合并到一起!
dcloud_properties.xml配置
在properties中添加如下配置,features节点与services节点必须同时配置!
有可能官网有写其他配置了,我这边暂时没用到,打成apk 暂时用模拟器是可以跑的
ok看到这里就结束了,我们俩个真强!
功能展示图片:
还得看看这里展示图片的问题,后续学习到了再说