uni-app uni-im/unipush2.0 在IPHONE11上收不到消息

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

uni-app uni-im/unipush2.0 在IPHONE11上收不到消息

开发环境 版本号 项目创建方式
Windows WIN10 HBuilderX

uni-app/小程序/微信

### 示例代码:
```p
uni-im源码,无修改。

操作步骤:

uni-im源码,无修改。

预期结果:

IPHONE 11上能收到消息

实际结果:

IPHONE X上能收到消息  
IPHONE 11上未能到消息  
其它设备未测试

bug描述:

uni-im 在小程序测试环境中:  
IPHONE X 中能收到消息  
IPHONE 11 中不能收到消息  

uni.onPushMessage 处无任何反应。  

即:  
IPHONE11上的用户,向IPHONEX上的用户发送消息时,正常可收到  
反过来,则收不到:  
IPHONE X上的用户,向IPHONE11上的用户发送消息时,无法收到  

1 回复

uni-app 中使用 uni-im/unipush2.0 时,如果在 iPhone 11 上收不到消息,可能是由于多种原因导致的。以下是一些可能的解决方案和排查步骤:


1. 检查证书配置

  • 问题原因:iOS 设备接收推送消息需要正确配置 APNs(Apple Push Notification Service)证书。
  • 解决方案
    1. 确保在苹果开发者后台已经生成了正确的推送证书(APNs 证书)。
    2. uni-appmanifest.json 中正确配置了 APNs 证书。
    3. 如果是测试环境,确保使用的是开发环境证书(Sandbox);如果是生产环境,确保使用的是生产环境证书。

2. 检查设备权限

  • 问题原因:iOS 设备需要用户授权才能接收推送消息。
  • 解决方案
    1. 确保应用在首次启动时请求了通知权限。
    2. 检查设备的通知设置,确保应用的推送权限是开启的。
    3. 可以通过以下代码检查权限状态:
      uni.getPushManager().getNotificationStatus({
        success(res) {
          console.log("推送权限状态:", res.status);
        }
      });

3. 检查设备 Token

  • 问题原因:如果设备未成功获取 APNs Token,则无法接收推送消息。
  • 解决方案
    1. 确保设备成功获取了 APNs Token。
    2. 可以通过以下代码监听 Token 获取:
      uni.getPushManager().onRegister({
        success(res) {
          console.log("设备 Token:", res.token);
        }
      });
    3. 确保服务器端正确使用了该 Token 发送推送消息。

4. 检查推送服务端配置

  • 问题原因:推送消息可能未正确发送到 APNs。
  • 解决方案
    1. 检查服务器端是否正确配置了 APNs 的推送地址(https://api.push.apple.comhttps://api.sandbox.push.apple.com)。
    2. 确保服务器端使用了正确的证书或 Token 认证方式。
    3. 检查推送消息的 Payload 是否符合 APNs 的格式要求。

5. 检查设备网络环境

  • 问题原因:设备可能未连接到网络,或者网络环境限制了推送消息的接收。
  • 解决方案
    1. 确保设备连接到稳定的网络(Wi-Fi 或蜂窝数据)。
    2. 检查设备的 VPN 或代理设置是否影响了推送消息的接收。

6. 检查设备系统版本

  • 问题原因:某些 iOS 系统版本可能存在推送服务的 Bug。
  • 解决方案
    1. 确保设备系统版本是最新的。
    2. 如果问题出现在特定系统版本上,尝试升级或降级系统版本。

7. 调试日志

  • 问题原因:缺少调试信息,无法定位问题。
  • 解决方案
    1. uni-app 中开启推送服务的调试日志:
      uni.getPushManager().setDebugMode(true);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!