开发者社区> 问答> 正文

应用研发平台EMAS iOS在App页面会推送remote,放到后台就是正常的,想请问要怎么都改成?

应用研发平台EMAS iOS在App页面会推送remote,放到后台就是正常的,想请问要怎么都改成正常的?cc41a98ebc079325d69732721a0c2d5b.png

展开
收起
真的很搞笑 2023-07-12 09:31:37 50 0
3 条回答
写回答
取消 提交回答
  • 如果您在 iOS 上使用应用研发平台 EMAS,但在应用页面时无法接收到远程推送消息(remote notifications),只有在后台时才能正常接收到,请检查以下几个可能的原因和解决方法:

    1. 推送权限设置:确保您的应用已经正确配置了推送权限。在 iOS 中,您需要在应用的 AppDelegate 类中请求用户授权以接收推送通知。请确保您的代码中包含了以下方法调用:
    UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
        // 处理授权结果
    }
    UIApplication.shared.registerForRemoteNotifications()
    
    1. 注册设备令牌:确保您的应用在成功获取到设备的推送权限后,将设备令牌(device token)注册到 EMAS 平台。获取设备令牌并发送到 EMAS 的代码通常位于 AppDelegate 的 didRegisterForRemoteNotificationsWithDeviceToken 方法中。请确保您的代码中包含了类似以下方法的实现:
    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined() // 将设备令牌转换为字符串
        EMASManager.sharedInstance().bindAlias(token) // 将设备令牌注册到 EMAS 平台
    }
    
    1. 后台模式设置:在 iOS 的 Info.plist 文件中,确保已正确配置推送相关的后台模式(Background Modes)。请添加以下键值对:
    <key>UIBackgroundModes</key>
    <array>
        <string>remote-notification</string>
    </array>
    
    1. 检查设备是否连接互联网:iOS 设备必须连接到互联网才能接收远程推送消息。请确保您的设备处于网络可用的状态,并且没有任何防火墙或网络限制导致无法访问推送服务器。
    2023-07-13 20:27:26
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    使用本地通知(local notification):本地通知是由应用程序自己触发的通知,可以在应用前台运行时显示。您可以在应用程序中编写相应的代码,触发本地通知的显示。

    修改推送通知的显示方式:在应用前台运行时,如果收到了远程推送通知,系统会默认在状态栏上显示通知。您可以通过修改推送通知的显示方式,使其在应用前台运行时以弹窗或横幅等形式显示。

    需要注意的是,iOS 应用在前台运行时显示通知的方式受到系统限制,不能完全自定义。如果您需要更灵活的通知显示形式,可以考虑使用自定义的视图或者弹窗等方式实现。

    2023-07-13 08:58:41
    赞同 展开评论 打赏
  • 这个推送的时候设备是离线的,此回答整理自钉群“应用研发平台EMAS开发者交流群”

    2023-07-12 10:43:30
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
相关文档: 移动研发平台
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载