华为手机uni-app unipush1.0收不到离线消息

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

华为手机uni-app unipush1.0收不到离线消息

信息类别 详情
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 win11
HBuilderX 正式
HBuilderX版本号 4.29
手机系统 Android
手机系统版本号 Android 15
手机厂商 华为
手机机型 随便
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

获取不到device token ,都配置了,按照文档来的,俩项目,另一个就能获取到,这一个就获取不到,配置好像也成功了,不知道啥原因


2 回复

请联系个推技术支持


针对您提到的华为手机在使用uni-app和uniPush 1.0时收不到离线消息的问题,这通常涉及多个方面的排查,包括客户端配置、服务器端推送设置、以及华为渠道的具体集成要求。以下是一些可能的代码示例和检查点,供您参考和调整:

1. 客户端配置检查

确保在manifest.json中正确配置了uniPush相关信息,特别是针对华为渠道的特定配置。例如:

"mp-weixin": { // 微信小程序等其他平台配置...
},
"h5": { // H5平台配置...
},
"app-plus": {
    "distribute": {
        "sdkConfigs": {
            "uniPush": {
                "huawei": {
                    "appid": "您的华为AppID",
                    "appsecret": "您的华为AppSecret"
                }
            }
        }
    }
}

2. 华为推送服务集成

确保在项目中集成了华为推送SDK,并正确初始化。这通常涉及到在App.vue或项目入口文件中添加相关代码:

// #ifdef APP-PLUS
plus.push.addEventListener('receive', function(msg) {
    if (msg.aps) { // iOS特有
        // 处理iOS推送消息
    } else if (msg.huawei) { // 华为特有
        console.log('华为推送消息:', msg.huawei);
    } else {
        // 处理其他推送消息
    }
});

plus.push.createMessageChannel('huawei', function(channelId) {
    console.log('华为推送通道创建成功,通道ID:', channelId);
}, function(e) {
    console.error('华为推送通道创建失败:', e);
});
// #endif

3. 服务器端推送逻辑

确保服务器端在发送推送消息时,针对华为设备使用了正确的API和参数。以下是一个简化的示例,用于说明如何根据设备类型(如华为)发送推送:

const sendPush = async (deviceType, deviceId, message) => {
    if (deviceType === 'huawei') {
        // 使用华为推送API发送消息
        const response = await fetch(`https://push-api.cloud.huawei.com/v1/${projectId}/messages:send`, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${accessToken}`
            },
            body: JSON.stringify({
                message: {
                    token: deviceId,
                    data: message
                }
            })
        });
        return response.json();
    }
    // 其他设备类型的处理逻辑...
};

4. 日志与调试

增加日志记录,帮助定位问题。检查客户端和服务器端的日志,确认消息是否成功发送、接收以及任何可能的错误或警告信息。

请根据上述代码示例和检查点,逐一排查并调整您的项目配置和代码,以解决华为手机收不到离线消息的问题。如果问题依旧存在,建议查阅uni-app和华为推送服务的官方文档,或向相关开发者社区寻求更具体的帮助。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!