【问题标题】:Make GCM notification open app without setting click_action使 GCM 通知打开应用程序而不设置 click_action
【发布时间】:2015-12-13 10:55:34
【问题描述】:

好的,所以我知道乍一看似乎我很愚蠢,因为我可以在来自服务器的通知 JSON 中设置“click_action”参数,并让它使用匹配的意图过滤器打开活动。但是,我不想这样做,因为文档继续说“如果设置,[click_action] 对应于 APNS 有效负载中的类别”,并且设置它会使通知不会在我的 iOS 应用程序上传递(因为那里在 iOS 应用程序上没有相应的类别,我也不想根据需要创建一个,我相信,添加我还不想参与的通知操作)。

在 iOS 上,点击通知只会打开相当于 Android 的“android.intent.category.LAUNCHER”操作。底线,有没有办法在 Android 中复制这个(或者如果设置了“click_action”,则解决 iOS 不显示通知的问题)?

【问题讨论】:

    标签: android ios notifications google-cloud-messaging


    【解决方案1】:

    在 GCM Intent 类中,在 Message 接收方法上只需解析所有内容,然后通过放入 Intent 来启动 Activity,您希望在收到 msg 时打开哪个 Activity。

    【讨论】:

    • 如果应用程序正在后台运行并收到通知,则在打开应用程序之前它不会被发送到“onMessageRecieve”方法,这也没有真正的帮助。 ://
    • 这是不对的,一旦你注册了你的设备,并且安装了那个应用程序,它总是运行一个线程来接受推送,无论是在后台还是在前台,当得到推送时,onMessageRecieved() 总是被触发.在应用程序中,我需要打开应用程序,一旦收到推送,因此在 onMessageReceived() 中,我只需解析 json 响应并打开意图以打开具有该特定活动的应用程序。
    【解决方案2】:

    我建议为 Android 和 iOS 客户端使用不同的有效负载。这将要求您的客户在提交他们的 InstanceID 令牌时识别他们的平台,但是一旦您知道客户是什么平台,您就可以制定更具体到目标平台的消息。

    【讨论】:

    • 这难道不会破坏将 GCM 用于两者的全部目的吗?到那时,我不妨为每个人使用 GCM/APN。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 2020-01-28
    相关资源
    最近更新 更多