更新记录

1.0.0(2026-11-05) 下载此版本

1.0.0

  • 首个版本:本地通知创建(createPushMessage)、预置渠道三级规格、payload.tab 点击路由穿透、djb2 指纹去重、延时推送
  • 能力探测如实返回 supported,非 App 端优雅降级不崩溃

平台兼容性

pk-notify 通知套件

本地通知:渠道分级、点击路由穿透、延时推送、去重覆盖、权限引导。基于 uni.createPushMessage,零第三方推送 SDK。

5 分钟接入

import notify from '@/uni_modules/pk-notify/js_sdk/index.js';

// App.vue onLaunch:注册点击路由表
notify.init({
  routes: [
    { tab: 'order', path: '/pages/order/detail' },
    { tab: 'msg',   path: '/pages/msg/index', query: 'from=push' }
  ]
});
notify.onTap((e) => console.log('点击通知', e.payload, e.path));

// 页面里发通知
await notify.create({
  title: '新订单提醒',
  content: '订单 #1024 待处理',
  importance: 'high',          // silent / default / high / alarm
  channelId: 'pk_alarm',       // 预置渠道
  payload: { tab: 'order', id: 1024 }  // 点击后跳 /pages/order/detail?id=1024
});

API 全表

方法 签名 说明
init init({ routes? }) 注册点击路由表 [{ tab, path, query? }];返回 { ok, routes }
supported supported() 能力探测 { supported, env, reason }——非 App 端如实返回 false,绝不假 true
requestPermission requestPermission() 申请通知权限(Android 13+ 走 POST_NOTIFICATIONS 运行时申请)
getPermissionState getPermissionState() 读授权状态 { state }(authorized/denied/unknown)
create create(args) 创建本地通知。返回 { ok, id, at }。args 见下
cancel cancel(id) 从插件记录移除指定通知
cancelAll cancelAll() 清空插件记录
channel channel(id) 读预置渠道:pk_default(默认)/ pk_marketing(静默)/ pk_alarm(高优先)
channels channels() 渠道列表
onTap onTap(fn) 点击回调:{ payload, ok, path, query };路由命中自动 navigateTo
offTap offTap(fn) 退订
describe describe(args) 生成请求摘要(调试/日志)

create 参数

参数 类型 必填 说明
title string ✓ 标题(>30 字符自动截断加…)
content string ✓ 内容(>100 字符自动截断)
importance string silent/default/high/alarm,默认 default
channelId string 渠道 id,默认 pk_default
delay number 延时毫秒,缺省立即
payload object 透传数据,payload.tab 驱动点击路由
id string 自定义指纹 ID;缺省按 title+content+payload 生成 djb2 指纹——同内容重复推送同 ID,系统覆盖不堆叠

预置渠道

id importance 用途
pk_default default 常规消息
pk_marketing silent 运营推广(无声音横幅)
pk_alarm high 订单/告警等重要消息

错误码

码 含义
E-NT-01 渠道参数非法
E-NT-02 importance 非法
E-NT-03 create 参数非法
E-NT-04 delay 非法
E-NT-05 路由表项非法(缺 tab/path)
E-NT-10/11 权限/创建异常(错误码可用于排查)

FAQ

Q: 需要接个推/极光吗? 不需要。本地通知走系统 createPushMessage(HBuilderX 3.5.2+),App 内场景(订单提醒、倒计时完成、下载完成)零依赖。

Q: 和 uni.push 的区别? uni.push 面向在线推送需要厂商通道配置;本插件只管「App 自己在本地发通知」,两者可共存。

Q: 点击通知怎么跳页面? init 时注册路由表,通知 payload 带 tab,点击自动 navigateTo;也可只监听 onTap 自己处理。

Q: 微信小程序支持吗? 小程序无本地通知 API(只有订阅消息),supported() 如实返回 false,调用不崩溃。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。