开发者社区 问答 正文

应用研发平台EMAS设备能获取到离线在线状态,桌面徽标那些都可以设置,initPush 也是成功的?

应用研发平台EMAS设备能获取到离线在线状态,桌面徽标那些都可以设置,initPush 也是成功的,但是 getApnsDeviceToken 获取到 undefined,不报错,addRegisterDeviceTokenSuccessCallback、addRegisterDeviceTokenFailedCallback这两个回调也不执行

展开
收起
真的很搞笑 2023-07-12 09:42:05 181 分享 版权
3 条回答
写回答
取消 提交回答
  • 如果您在应用研发平台 EMAS 中成功初始化推送(initPush),但在调用 getApnsDeviceToken 时获取到 undefined,并且 addRegisterDeviceTokenSuccessCallback 和 addRegisterDeviceTokenFailedCallback 回调也没有执行,可能有以下几个原因:

    1. 设备令牌注册尚未完成:在 iOS 上,获取设备的 APNs 令牌(APNs Device Token)是一个异步操作。可能需要一些时间才能获取到令牌并将其注册到 EMAS 平台。请确保您在调用 getApnsDeviceToken 之后等待足够的时间,以允许令牌注册完成。

    2. 推送权限设置不正确:在 iOS 上,您的应用必须正确请求用户授权以接收推送通知。请确保在初始化推送之前,通过调用下面的方法来请求用户授权:

    UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
        // 处理授权结果
    }
    UIApplication.shared.registerForRemoteNotifications()
    
    1. 检查设备联网状态:确保您的设备已连接到互联网,这是获取设备令牌和注册到 EMAS 平台所必需的。

    2. 检查 EMAS SDK 版本兼容性:确保您使用的 EMAS SDK 版本与您的应用程序兼容,并具有适用于当前 iOS 版本的功能和修复程序。如果 SDK 版本不匹配,可能会导致获取令牌失败或回调不执行。

    2023-07-13 20:36:56
    赞同 展开评论
  • 北京阿里云ACE会长

    初始化推送没有成功
    检查 initPush() 接口是否真的成功初始化了推送,如果没有成功初始化就无法获取APNs Device Token。

    没有请求获取Device Token的权限
    需要在 Info.plist 中添加获取Device Token的相关权限,如:

    "aps-environment" : "development/production"
    "UIBackgroundModes" : "remote-notification"
    APNs证书设置有问题
    检查APNs环境(开发环境还是生产环境)是否与EMAS Push设置一致,以及APNs Push证书是否正确添加到EMAS平台。

    设备系统版本太低

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

    如果您在使用阿里云应用研发平台 EMAS 的过程中,调用了 initPush 方法成功获取到了设备的在线离线状态,并且设置了桌面徽标等功能,但是在调用 getApnsDeviceToken 方法时获取到了 undefined,并且 addRegisterDeviceTokenSuccessCallback 和 addRegisterDeviceTokenFailedCallback 回调也没有执行,可能有以下原因:

    1. getApnsDeviceToken 方法只适用于 iOS 平台,如果您是在 Android 平台上调用该方法,会返回 undefined。

    2. 如果您是在 iOS 平台上调用 getApnsDeviceToken 方法,但是没有获取到设备的 Device Token,可能是因为您的应用没有正确配置推送证书或者推送证书已经过期失效。建议您检查应用的推送证书配置,并重新生成推送证书。

    3. 如果您的应用已经正确配置了推送证书,但是仍然无法获取到 Device Token,可能是因为 EMAS SDK 没有正确初始化。建议您检查 EMAS SDK 的初始化代码,确保已经正确调用了 init 方法。

    2023-07-13 14:06:58
    赞同 展开评论