开发者社区> 问答> 正文

Flutter 集成推送之后 IOS收不到推送通知、可以收到推送消息

发送通知后提示这个
2023-07-29 00:50:21.034162+0800 Runner[21192:4872716] [connection] nw_read_request_report [C5] Receive failed with error "Connection reset by peer"
2023-07-29 00:50:39.371724+0800 Runner[21192:4872332] [CloudPush Debug]: Request url is: https://mpush-api.aliyun.com/sync-badge
2023-07-29 00:50:39.379135+0800 Runner[21192:4872335] [CloudPush Debug]: Request url is: https://mpush-api.aliyun.com/msg-ack
2023-07-29 00:50:39.632160+0800 Runner[21192:4872335] [CloudPush Debug]: Send notification opened ack success via VIP.

展开
收起
努力的人呐 2023-07-29 09:00:40 585 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Flutter是一种流行的跨平台移动应用开发框架,可以帮助开发者快速构建高质量的iOS和Android应用程序。在Flutter应用程序中集成推送服务,可以使应用程序更加实用和便捷。然而,由于不同平台推送服务的实现方式和规范不同,可能会出现一些问题,如iOS收不到推送通知,但可以收到推送消息的情况。
    可以尝试以下几个解决方案:

    检查证书和配置:在iOS平台上,推送通知需要使用APNs证书进行验证和传输。如果证书或配置有误,可能导致推送通知无法正常发送和接收。因此,可以检查APNs证书和配置,确保正确无误。

    检查设备Token:在iOS平台上,设备Token是推送通知的关键标识符。如果设备Token有误或失效,可能导致推送通知无法正常发送和接收。因此,可以检查设备Token是否正确和有效。

    检查推送服务代码:在Flutter应用程序中,需要使用推送服务代码进行消息推送和通知。如果推送服务代码有误或配置不当,可能导致推送通知无法正常发送和接收。因此,可以检查推送服务代码,确保正确无误。

    检查推送通道和权限:在iOS平台上,推送通知需要使用APNs通道进行传输。如果推送通道有误或权限不足,可能导致推送通知无法正常发送和接收。因此,可以检查推送通道和权限,确保正确无误。

    2023-07-31 23:26:37
    赞同 展开评论 打赏
  • 根据您提供的日志信息,这些日志是关于使用阿里云的消息推送服务发送通知时的一些提示和调试信息。

    其中,“Connection reset by peer”错误表示与服务器之间的连接被对方重置。可能有多种原因导致此错误,例如网络故障、服务器配置问题等。如果这个错误只是偶尔出现,可能是由于网络抖动或临时的连接问题引起的,并不一定需要过多关注。

    另外两行日志中的信息则是在发送通知时的调试信息,指示了请求的URL。这些信息表明您的应用程序正在向 https://mpush-api.aliyun.com/sync-badgehttps://mpush-api.aliyun.com/msg-ack 发送请求。

    最后一行日志中的信息表明通知已成功通过 VIP(Very Important Push)发送并接收到通知打开的确认回复。

    2023-07-30 21:23:23
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    根据你提供的日志信息,问题可能出在推送证书配置上。在集成推送时,iOS 需要配置推送证书(APNs证书),以确保能够正常接收推送通知。

    请确认以下几个步骤是否正确执行:

    1. 生成并下载 APNs 证书:确保你已在苹果开发者中心创建了 App ID,并生成了与该 App ID 匹配的推送证书。下载推送证书,并将证书文件(通常是以.p12或.pem为扩展名)保存在本地。

    2. 在 Flutter 项目中配置推送证书:将推送证书文件添加到 Flutter 项目的 iOS 文件夹中,确保文件的命名和位置正确。同时,在 Xcode 中配置推送证书相关设置,例如 Bundle Identifier、Push Notifications 等。

    3. 检查推送设备标识符(Device Token)获取:在你的 Flutter 代码中,确保正确获取了设备的推送设备标识符(Device Token)。你需要使用 flutter_aliyun_push 插件或其他相关插件来实现推送功能,确保调用相关方法获取 Device Token。

    4. 集成推送 SDK:确保你使用的推送 SDK 版本和对应的 Flutter 插件版本兼容,并按照相关文档进行正确的集成和配置。

    如果以上步骤都已正确执行,但问题仍然存在,请尝试以下操作:

    1. 确保设备网络正常:推送通知需要设备能够正常访问互联网。请确保你的 iOS 设备已连接到可用的网络。

    2. 清理应用缓存或重装应用:有时,由于缓存问题或错误配置,推送通知可能无法正常工作。你可以尝试清理应用缓存或重装应用来解决问题。

    2023-07-29 23:48:21
    赞同 展开评论 打赏
  • 根据您提供的信息,您的Flutter应用在iOS上集成了推送通知,但您遇到了一个问题,即无法收到推送通知,只能收到推送消息。此外,您还提供了与推送通知相关的的一些日志信息。

    根据日志中的信息,似乎存在连接问题。其中一条日志显示连接被对端重置了("Connectionreset by peer")。这可能是导致您无法收到推送通知的原因之一。

    为了进一步诊断和解决问题,您可以尝试以下步骤:

    检查您的应用是否正确配置了推送通知的相关设置,包括推送证书、APSNsertion证书、通知服务等等。确保这些设置正确并且与您的服务器端设置匹配。

    检查您的网络连接是否正常。如果您的设备处于离线状态或网络连接不稳定,可能无法正常接收推送通知。确保您的设备连接到一个良好的网络环境。

    如果您的应用使用了第三方推送服务,例如阿里云推送,请检查您的应用是否正确配置了这些服务。确保您提供了正确的配置信息,并检查这些服务是否正常工作。

    如果您在调试过程中遇到了问题,请确保您的调试设置正确。在Xcode中检查您的调试设置,确保启用了推送通知并且正确配置了调试证书。

    查看其他日志信息,以了解是否有其他与推送通知相关的问题。您可以在Xcode中的控制台或应用的日志中查看更多详细信息。

    2023-07-29 13:09:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于flutter的产品应用实践 立即下载
《Flutter in action》 立即下载
闲鱼《Flutter 技术解析与实战》 立即下载