coffey
coffey
  • 发布:2021-04-17 16:01
  • 更新:2021-12-24 15:02
  • 阅读:1966

UniPush 推送遇到的相关问题(华为已测成功)(记录分享)

分类:HTML5+

踩坑3天,解决部分推送问题,供各位坑友参考。
本人亲测华为手机已没有问题,可以实现离线推送,其他手册品牌如有坑友测试通过的,最好能在评论区一起分享。

环境说明:
1、服务端环境:node.js
2、个推RestAPI V2 协议
3、测试手机:华为 HONOR Play4T Pro (AQM-AL10)

注:以下复现步骤均以上述环境为主,如果是其他服务环境请参考个推手册
新手请先阅读: UniPush使用指南(仔细阅读)
其他常见问题:UniPush常见问题 (仔细阅读)

步骤一
进入 Dcloud开发者中心,在厂商推送设置中设置相应厂商的各种参数。
特别提醒:在华为开发者平台中,必须要设置应用的SHA256证书指纹,否则会导致无法离线推送。

步骤二:个推推送参数

{  
    "request_id":"xxxxxx", //请求唯一标识号,10-32位之间;如果request_id重复,会导致消息丢失  
    "settings":{  
        "ttl":-1,//消息离线时间设置,单位毫秒,-1表示不设离线,-1 ~ 3 * 24 * 3600 * 1000(3天)之间  
        "strategy":{  
            "default":1 //1: 表示该消息在用户在线时推送个推通道,用户离线时推送厂商通道;  
        }  
    },  
    "audience":{  
        "cid":[  
            "推送的用户CID"  
        ]  
    },  
    "push_message":{  
        "notification":{  
            "title":"标题内容", //通知消息标题,长度 ≤ 50  
            "body":"消息内容", //通知消息内容,长度 ≤ 256  
            //"logo":"logo.png",//通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”,长度 ≤ 64  
            //"logo_url":"http://xxxx/a.png",//通知图标URL地址,长度 ≤ 256  
            "click_type":"intent",//点击后启动应用  
            "channel_level":4,  
            "intent":"intent:#Intent;launchFlags=0x04000000;action=android.intent.action.oppopush;component=你的应用包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=标题内容;S.content=消息内容;S.payload=test;end"    
  
        }  
    },  
    "push_channel":{ //离线推送的成败都在这段配置里面,根据自己的实际情况进行配置  
        "android":{  
            "ups":{  
                "notification":{  
                    "title":"标题内容", //通知消息标题,长度 ≤ 50  
                    "body":"消息内容", //通知消息内容,长度 ≤ 256  
                    //"logo":"logo.png",//通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”,长度 ≤ 64  
                    //"logo_url":"http://xxxx/a.png",//通知图标URL地址,长度 ≤ 256  
                    "click_type":"intent",//点击后启动应用  
                    "channel_level":4,  
                    "intent":"intent:#Intent;launchFlags=0x04000000;action=android.intent.action.oppopush;component=你的应用包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=标题内容;S.content=消息内容;S.payload=test;end"    
                },  
                "options":{  
                    //各厂商的特殊参数,选填  
                    "HW":{  
                        "/message/android/urgency":"HIGH",  
                        "/message/android/category":"PLAY_VOICE"  
                    }  
                }  
            }  
        },  
        "ios":{  
            "type":"notify",  
            "payload":"自定义消息",  
            "aps":{  
                "alert":{  
                    "title":"请填写ios标题",  
                    "body":"请填写ios内容"  
                },  
                "content-available":0  
            },  
            "auto_badge":"+1"  
        }  
    }  
}

以上参数中需要特别注意的是 push_channel 字段中的内容,是走离线推送的通道设置。不可省略。其中 click_type 必须为 intent,intent 中的内容保持上述我的模板,替换你自己的应用包名即可。S.title=标题内容;S.content=消息内容;S.payload=test 可以替换成你自己的内容,与 title ,body 保持一致。

其他问题:
1、离线推送后手机不亮屏、不提醒声音及震动的解决方法。
华为手机可能会把APP的推送划为营销短信,因此被静默,需要手动在手机的 “设置”-》“通知”-》“你的应用”-》“营销通知” -》“允许通知及相关的提醒设置”

0 关注 分享

要回复文章请先登录注册

f***@163.com

f***@163.com

回复 5***@qq.com :
请问你解决了没?
2021-12-24 15:02
5***@qq.com

5***@qq.com

我绑定应用时,提示验证错误。
2021-09-17 15:57
5***@qq.com

5***@qq.com

应用必须上线才可以进行推送吗
2021-09-17 15:16