uni-app uni.createPushMessage 关闭提示音无效

发布于 1周前 作者 caililin 来自 Uni-App

uni-app uni.createPushMessage 关闭提示音无效

项目 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.99
手机系统 全部
手机系统版本号 Android 14
手机厂商 华为
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

测试过的手机:

荣 耀50

操作步骤:

```javascript
uni.createPushMessage({
"when": new Date(),
title: title + '(' + type + ')',
sound: "none",
cover: true,
icon: '../../static/system/xiaoxi.png',
// delay:1,
content: content,
payload: {},
success: () => {
console.log("自创推送成功")
},
fail: () => {
console.log("自创推送失败")
}
})

预期结果:

没有提示音

实际结果:

还是有提示音

bug描述:

```javascript
uni.createPushMessage({
"when": new Date(),
title: title + '(' + type + ')',
sound: "none",
cover: true,
icon: '../../static/system/xiaoxi.png',
// delay:1,
content: content,
payload: {},
success: () => {
console.log("自创推送成功")
},
fail: () => {
console.log("自创推送失败")
}
})

sound: "none" 不起作用啊 按照官方操作文档设置的。还是有提示音 一直推送消息这个声音很影响用户体验


6 回复

滴滴 这个问题还是没有处理吗?很明显的一个bug 比如计时每秒推送 那就会一直有提示音 无法关闭 特别吵


你好,请问这个问题解决了吗?我也想做一个没有声音的消息推送

才看到 不给解决么 这就是个bug 但是可能优先级没那么高。这个只能官方来处理了。没有解决。我把提示音关了。

回复 2***@qq.com: 请问有找到解决的方法吗

同样遇到这个问题,请问官方有修复计划吗

uni-app 中使用 uni.createPushMessage 来创建推送消息时,确实可能会遇到关闭提示音无效的问题。这通常是因为推送服务的配置或者消息本身的属性设置不正确。下面是一个基本的代码示例,展示如何配置推送消息,并尝试禁用提示音。请注意,实际效果可能受到推送服务提供商(如个推、极光推送等)的限制和支持情况的影响。

首先,确保你已经正确集成了推送服务,并且已经获取了相关的权限和配置。以下是一个简化的代码示例,用于发送一条不带提示音的推送消息:

// 假设你已经通过uni-app的manifest.json配置了推送服务的相关信息

// 创建一个推送消息对象
const pushMessage = uni.createPushMessage({
    title: '这是一条测试消息',
    content: '测试内容,无提示音',
    data: { // 自定义数据,可以在App端接收时处理
        key1: 'value1',
        key2: 'value2'
    },
    android: {
        // 针对Android平台的特定配置
        sound: 'null', // 尝试设置为null或空字符串来禁用提示音,具体支持情况需参考推送服务提供商的文档
        importance: 'LOW', // 设置消息的重要性,LOW级别可能不会显示通知但会出现在通知栏历史中
        // 其他Android平台特有的配置...
    },
    ios: {
        // 针对iOS平台的特定配置
        sound: false, // iOS上通常通过设置为false来禁用声音
        // 其他iOS平台特有的配置...
    }
});

// 发送推送消息(注意:这里的发送逻辑通常是服务器端完成的,客户端调用此API主要是为了展示如何配置消息)
// 实际发送时,你可能需要将配置发送到你的服务器,由服务器通过推送服务发送消息给指定的用户或设备
pushMessage.send().then(response => {
    console.log('推送消息发送成功', response);
}).catch(error => {
    console.error('推送消息发送失败', error);
});

注意事项

  1. 上述代码中的 sound 属性设置为 nullfalse 是为了尝试禁用提示音,但实际效果依赖于推送服务提供商的实现。
  2. uni.createPushMessage 通常在服务器端调用,因为推送消息需要针对特定的用户或设备发送。客户端代码主要用于展示如何配置消息。
  3. 如果推送服务提供商不支持禁用提示音,那么无论如何配置,提示音都可能会被播放。
  4. 请参考你所使用的推送服务提供商的官方文档,以获取最准确和最新的配置信息。
回到顶部