Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
6fd26c3f
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
5995
Star
90
Fork
162
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
6fd26c3f
编写于
8月 05, 2024
作者:
taohebin@dcloud.io
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update: unipush示例修改
上级
4aad3542
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
116 addition
and
56 deletion
+116
-56
pages/API/uni-push/uni-push.uvue
pages/API/uni-push/uni-push.uvue
+116
-56
未找到文件。
pages/API/uni-push/uni-push.uvue
浏览文件 @
6fd26c3f
...
...
@@ -12,6 +12,12 @@
<button class="normal-button" type="default" @click="handleCreateLocalNotification">
创建本地通知消息 | createPushMessage
</button>
<text class="instructions">
不同手机厂商的角标显示规则不同,有部分设备的rom版本不支持显示角标,另有部分rom需要在应用的通知管理里开启`桌面角标`配置,才可以设置角标成功。\n
部分rom需要在设置中同时开启`通知开关`和`桌面角标`配置,才允许设置角标,例如鸿蒙4.2。 \n
另外针对高版本小米设备,会借助创建通知栏消息来设置角标数,所以设置时需要注意是否有权限创建通知栏消息。
</text>
<button class="normal-button" type="default" @click="handleSetBadge">
设置角标为5 | setAppBadgeNumber(5)
</button>
...
...
@@ -20,115 +26,162 @@
</button>
<button class="normal-button" type="default" @click="handleGetClientId">
获取cid | getPushClientId
</button>
</button>
<textarea style="flex: 1;width: 100%;" :disabled="true" :value="channelInfo"></textarea>
</scroll-view>
<!-- #endif -->
</template>
<script setup>
const channelInfo = ref("")
<script setup>
const channelInfo = ref("")
const handleCreateChannel = (showToast: boolean) => {
onMounted(() => {
uni.onPushMessage((res : OnPushMessageCallbackResult) => {
uni.showModal({
title: "onPushMessage回调信息",
content: `type:${res.type} \n data:${JSON.stringify(res.data)}`
})
})
})
const handleCreateChannel = (showToast : boolean) => {
// #ifdef APP-ANDROID
const manager = uni.getPushChannelManager()
manager.setPushChannel({
channelId: "msg-pass",
channelDesc: "留言审核通过",
} as SetPushChannelOptions)
if(showToast){
uni.showToast({
title: "设置渠道成功"
})
soundName: "#填写配置的声音文件名#",
enableLights: true,
enableVibration: true,
importance: 4,
lockscreenVisibility: 1
} as SetPushChannelOptions)
if (showToast) {
uni.showToast({
title: "设置渠道成功"
})
}
// #endif
}
const handleGetAllChannels = () => {
// #ifdef APP-ANDROID
const manager = uni.getPushChannelManager()
console.log("channels : " + manager.getAllChannels());
console.log("channels : " + manager.getAllChannels());
channelInfo.value = `渠道信息为: \n ${manager.getAllChannels()}`
// #endif
}
const handleCreateLocalNotification = () => {
// #ifdef APP-ANDROID
if (uni.getAppAuthorizeSetting().notificationAuthorized == "authorized") {
// #endif
handleCreateChannel(false)
const date = new Date();
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
const formateTime = (target: number): string =>{
return target < 10 ? `0${target}` : `${target}`
handleCreateChannel(false)
const date = new Date();
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
const formateTime = (target : number) : string => {
return target < 10 ? `0${target}` : `${target}`
}
uni.createPushMessage({
title: "主标题(title)",
content: `内容(content),创建时间: ${formateTime(hour)}:${formateTime(minute)}:${formateTime(second)}`,
cover:false,
cover:
false,
channelId: "msg-pass",
when: Date.now() + 10000,
icon: "/static/uni.png",
sound:"system",
delay:1,
icon: "/static/uni.png",
sound:
"system",
delay:
1,
payload: {
pkey: "pvalue1"
},
category: "IM",
success(res) {
console.log("res: " + res);
uni.hideToast()
uni.showToast({
title:
"创建本地通知消息成功"
console.log("res: " + res);
uni.hideToast()
uni.showToast({
title:
"创建本地通知消息成功"
})
},
fail(e) {
console.log("fail :" + e);
uni.hideToast()
uni.showToast({
title:
"创建本地通知消息失败",
icon:
"error"
console.log("fail :" + e);
uni.hideToast()
uni.showToast({
title:
"创建本地通知消息失败",
icon:
"error"
})
}
})
// #ifdef APP-ANDROID
} else {
uni.showToast({
title: "请在设置中开启通知权限",
icon: "error"
})
}
// #endif
}
const handleGetClientId = () => {
uni.getPushClientId({
success:(res : GetPushClientIdSuccess)=>{
uni.showModal({
title:"信息",
content: `获取cid : ${res.cid}`
})
},
fail:()=>{
uni.showToast({
title:`获取cid失败`,
icon: "error"
})
uni.showLoading({
title: "正在获取cid",
})
uni.getPushClientId({
success: (res : GetPushClientIdSuccess) => {
uni.hideLoading()
uni.showModal({
title: "信息",
content: `cid : ${res.cid}`
})
},
fail: () => {
uni.hideLoading()
uni.showToast({
title: `获取cid失败`,
icon: "error"
})
}
})
}
const handleSetBadge = () => {
uni.setAppBadgeNumber(5)
uni.showToast({
title:"设置应用角标数为5"
})
if (uni.getDeviceInfo().deviceBrand?.toLowerCase() == "xiaomi") {
if (uni.getAppAuthorizeSetting().notificationAuthorized == "authorized") {
uni.setAppBadgeNumber(5, {
title: "AppName",
content: "您有5条未读消息"
} as BadgeOptions)
uni.showToast({
title: "设置应用角标数为5"
})
} else {
uni.showToast({
title: "请在设置中开启通知权限",
icon: "error"
})
}
} else {
uni.setAppBadgeNumber(5)
uni.showToast({
title: "设置应用角标数为5"
})
}
}
const handleCleanBadge = () => {
uni.setAppBadgeNumber(0)
uni.showToast({
title:"清空应用角标数"
})
if (uni.getDeviceInfo().deviceBrand?.toLowerCase() == "xiaomi") {
if (uni.getAppAuthorizeSetting().notificationAuthorized == "authorized") {
uni.setAppBadgeNumber(0, {} as BadgeOptions)
uni.showToast({
title: "清空应用角标数"
})
}else{
uni.showToast({
title: "请在设置中开启通知权限",
icon: "error"
})
}
} else {
uni.setAppBadgeNumber(0)
uni.showToast({
title: "清空应用角标数"
})
}
}
</script>
...
...
@@ -136,4 +189,11 @@
.normal-button {
width: 100%;
}
.instructions {
margin-top: 10px;
margin-left: 10px;
margin-right: 10px;
background-color: #eee;
}
</style>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录