uni-app iOS打自定义基座无通知功能权限

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

uni-app iOS打自定义基座无通知功能权限

操作步骤:

  • iOS自定义基座云打包

预期结果:

  • 有通知功能

实际结果:

  • 无通知功能

bug描述:

  • iOS打自定义基座, 有勾选unipush1.0; app没有通知功能和权限, 之前都是有的

| 信息类别       | 内容                       |
|----------------|----------------------------|
| 产品分类       | uniapp/App                 |
| PC开发环境     | Mac                        |
| PC操作系统版本 | M1                         |
| HBuilderX类型  | 正式                       |
| HBuilderX版本  | 3.99                       |
| 手机系统       | iOS                        |
| 手机系统版本   | iOS 15                     |
| 手机厂商       | 苹果                       |
| 手机机型       | iPhone11                   |
| 页面类型       | vue                        |
| vue版本        | vue2                       |
| 打包方式       | 云端                       |
| 项目创建方式   | HBuilderX                  |

4 回复

在使用 uni-app 开发 iOS 应用时,如果你自定义基座(即使用自定义的 .mobileprovision 文件和 .p12 证书)时,发现通知功能无法正常工作,可能是由于以下原因导致的:

1. 证书未开启推送通知功能

  • 在 Apple Developer 后台,检查你的 App ID 是否启用了推送通知(Push Notifications)功能。
  • 如果没有启用,你需要编辑 App ID,勾选推送通知功能,并重新生成 .mobileprovision 文件。

2. 推送通知证书未配置

  • 确保你已经为 App ID 生成了推送通知证书(APNs 证书)。这个证书可以是开发环境或生产环境的。
  • 推送通知证书需要与你的 .mobileprovision 文件匹配。

3. 自定义基座未包含推送通知权限

  • 确保你的自定义基座中包含了推送通知的权限。你可以在 manifest.json 文件中配置推送通知权限:
    {
      "app-plus": {
        "distribute": {
          "ios": {
            "UIBackgroundModes": ["remote-notification"]
          }
        }
      }
    }
  • 这个配置会在 Info.plist 文件中添加 UIBackgroundModes 键,允许应用在后台接收推送通知。

4. 自定义基座的 .mobileprovision 文件问题

  • 确保你使用的 .mobileprovision 文件与你的 App ID 和推送通知证书匹配。
  • 如果 .mobileprovision 文件不包含推送通知权限,通知功能将无法正常工作。

5. 设备未授权推送通知

  • 在 iOS 设备上,确保用户已经授权应用发送通知。你可以在应用启动时请求通知权限:
    uni.authorize({
      scope: 'scope.userNotification',
      success() {
        console.log('通知权限已授权');
      },
      fail() {
        console.log('通知权限未授权');
      }
    });
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!