> 技术文档 > uniapp写app做测试手机通知栏展示内容

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仅为:

路径 文件 SDK\\libs aps-release.aar, aps-unipush-release.aar

接下来我们去开通 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看到这里就结束了,我们俩个真强!

功能展示图片:     

还得看看这里展示图片的问题,后续学习到了再说