常见问题 - JPush 合集(持续更新)

问题汇总
标签: #<Tag:0x00007fb845f90b78>

#35

Error code 1008

备注:其他错误码列表 Android 点我;iOS 点我;服务端 点我


服务端错误说明:app_key does not exist ;客户端错误说明:AppKey 非法

  1. Appkey 前后是否多了一个空格

  2. 是不是把 Appkey 和 MasterSecret 传反了(服务端检查)

  3. Appkey 对应的应用是不是已经被删除了

  4. Appkey 在应用详情里,不是开发者标识 DevKey!



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




安卓手机的应用自动被杀死进程,导致推送不成功,怎么解决?
Authen failed是什么情况造成的?
推送消息时报异常
JPush 常见问题目录
Got error response - responseCode:400, responseContent:{"error":{"code":1004,"message":"app_key does not exist"}}
java 集成 极光推送 Authen failed! 急求
申请了安卓 和 苹果的key,安卓的好用可以正常推送,苹果报 key不存在
jpush-react-native集成报客户端没注册
PHP 分组推送 IOS可以收到,安卓收不到
basic authentication failed错误问题
验证失败推送消息失败
调用极光push消息时报appKey and masterSecret format is incorrect,本地是没有问题的
React Native 集成到安卓 显示 Jigaung提示
提示包名和appkey不匹配,请到portal
1004验证失败,但是记录里有成功的记录
#36

Error code 1009

备注:其他错误码列表 Android 点我;iOS 点我;服务端 点我


服务端:


客户端:

Android:当前的 Appkey 下没有创建 Android 应用。

  1. 检查 App 配置的这个 Appkey 对应的官网应用是否有填写 Android 的包名
    应用详情 - 推送设置 - Android - 展开

iOS:当前的 Appkey 下没有创建 iOS 应用

  1. 检查 App 配置的这个 Appkey 对应的官网应用是否有上传 iOS 证书

  2. 如果 iOS 证书已上传,查看证书状态,已验证才是正确的

  3. 如果 iOS 证书为已验证,可能的原因是:近几天你重新上传过证书,但是该证书是无效错误的,此时界面显示的验证状态是你以前上传的那个证书的。方法:重新上传一次证书,查看是否有报错,根据报错解决问题。



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




JPush 常见问题目录
初始化失败,报错1009
api发送通知1009
error code:1009,你配置的AppKey尚未配置iOS平台
Node.js API调用返回400 code 1009 错误
#37

如何更新 / 覆盖消息:发送一条新的消息,更新 / 覆盖当前通知栏展示的消息


Push - options(可选参数) 中提供了对应字段

Android :override_msg_id

推送规则:

  • 推送消息 A,产生 MessageID1;

  • 推送消息 B,产生 MessageID2;(此时希望覆盖消息 A,传递 MessageID1)

  • 推送消息 C,产生 MessageID3;(此时希望覆盖消息 B,依旧传递 MessageID1)

  • 每次传递的都是最原始产生的那个 MessageID

效果:

  • 该 MessageID 离线收到的消息是覆盖后的内容;

  • 即使该 MessageID Android 端用户已经收到,如果通知栏还未清除,则新的消息内容会覆盖之前这条通知;

  • 覆盖功能起作用的时限是:1 天。如果在覆盖指定时限内该 MessageID 不存在,则返回 1003 错误,提示不是一次有效的消息覆盖操作,当前的消息不会被推送。

iOS :apns_collapse_id

规则:

  • collapse id 长度不可超过 64 bytes。

  • 推送消息 A,在可选字段中传值apns_collapse_id1;

  • 推送消息 B,此时希望更新消息 A ,则在可选字段中传值apns_collapse_id1

效果:

  • APNs 新通知如果匹配到当前通知中心有相同 apns-collapse-id 字段的通知,则会用新通知内容来更新它,并使其置于通知中心首位。

注:Android 覆盖消息不支持「将其置于通知中心首位」这一效果


可能你需要知道的内容:

1、极光提供了 CID 帮助大家避免重复请求推送消息

2、若不小心重复推送了消息,可以联系官方帮你删掉「当前还没有发下去的离线保存的消息」,已经发了的就没办法了。

注意:iOS 的 APNs 消息是没法删掉的,他不属于「当前还没有发下去的离线保存的消息」,因为在你请求之后我们会马上发给 Apple 服务器,若你的 iOS 用户处于断网状态,那么可以再给他推送一条 APNs 消息,则前一条消息将不会收到,原因是 设备离线期间推送多条,APNs 服务器只会离线保留一条

  • 点我头像私信我
  • 发邮件给 support@jpush.cn(邮箱负责人会很快的处理邮件,另此邮箱非我负责,发完后不要联系我让我迅速处理)
  • 联系 JPush QQ(QQ 由于信息过多,不保证及时回应):1206559424

需要提供的信息如下

  • 应用的 Appkey,需要删除离线消息的 MessageID(调用 API 请求成功后会返回 msgid ,官网 - 推送历史 - 筛选 web / API - 操作 - i 详情里面也可以查看该信息)

  • 如果有很多个 MessageID,请用英文逗号隔开 MessageID 的值,其他备注不需要,也请不要换行

  • 如果这多个 MessageID 针对的推送目标 Audience 是一样的,则根据极光离线消息保存规则,可仅提供最新 5 条消息的 MessageID 删除即可,此前的已经被自动删除

  • 极光官网个人账号 - 个人信息截图(确认你的身份)



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




JPush 常见问题目录
极光推送设置问题
msgid如何获取
今天App不断收到异常推送
今天App不断收到异常推送
关于ios的消息撤回疑问 -- 已解决
Android同一条推送收到了2~3次
怎么查看是哪个服务器给自己发的消息
#38

服务器所在地、API推送看不到历史记录


「服务器所在地」信息:分北京机房和南方机房

关于位于北京机房的应用的一些特殊说明:

  • 调用方服务器也位于北京的话,使用 bjapi.push.jiguang.cn 作为调用地址,可以提升 API 响应速度。

  • 调用原地址 api.jpush.cn 给北京应用做推送,可能会出现「官网看不见推送历史记录,但消息实际已经下发」的问题,换成北京地址 bjapi.jiguang.cn 即可成功看到记录。

  • 如果加了 IP 白名单,就请使用对应机房的域名进行请求。

  • 暂时不支持将位于「南方机房」和「北京机房」的分为一组后用一个域名请求推送,在官网推送应没问题,但调 API 时,调 南方的域名只有南方机房的收的到,调 北京的域名之后北京机房的收的到。(当前应用均已迁移至北京机房,不再有这个问题。

  • 分组推送 group API ,必须使用对应机房的 API 推送才可以成功,如果你分组下的应用处于北京机房,则必须修改为北京域名。(当前已不需要这样处理,分组 API 上不再有南方和北京之分,开发者服务器也位于北京的情况下,使用北京域名的 API 只是会提升响应速度,根据需求选择使用)

  • Java SDK 是调用 ClientConfig 设置相关域名

ClientConfig clientConfig = ClientConfig.getInstance();
clientConfig.setPushHostName("hostName");

北京机房相关 api 文本,对照南方机房的进行替换:

New Push API & Schdule API:

New Report API:

New Device API:



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




JPush 常见问题目录
rest grouppush推送收不到,对单个推送可以
本地推送正常,放到服务器就推送多条
调 report API 查询不到结果
推送错误,app_key does not exist
Java开发环境和生产环境URL地址配置是否相同
全平台推送如何根据指定别名查询是否推送成功
Msgid does not exist
北京域名,分组推送异常
注册应用时服务器所在地如何修改?
推送通知突然不行,不管是别名还是标签
javasdk,应用分组推送成功,客户端没有收到推送的信息
C#服务端代码下发推送后,极光平台那边没有推送消息生成
请问下关于极光单个发送状态查询
调用送达状态查询接口返回3002 Msgid does not exist.
极光显示推送成功,但是手机和后台的推送历史没人收到该数据
有没有大神遇到这情况?设置了白名单还是报客户端没有权限
jpush在本地運行可以成功推送,打包到服務器上後推送失敗
jpush在本地運行可以成功推送,打包到服務器上後推送失敗
目前推送的很多用户都没法收到消息
web直接通过别名(一个目标)发送通知,记录显示多个目标发送成功,但手机并没有收到
开发环境可以推送,生产环境不行
开发环境可以推送,生产环境不行
分组推送失败,cannot find user by this audience
单个应用推送别名(Alias)没问题,但是在这个应用的分组上推送就提示找不到对应的目标推送
java开发消息推送成功,手机收不到消息提醒
JAVASDK 添加/删除用户标签疑惑求解释
代码显示发送成功,但是未收到信息
推送成功官网却没有推送成功的记录
php 极光推送返回报错
服务端推送消息成功,但是极光没有记录,服务端也接收不到
"error": {"message": "cannot find user by this audience", "code": 1011}
android端重构版包名发生改变引起的问题
发送自定义消息控制台可见
api推送返回成功,推送历史没记录,没收到推送提醒
api推送返回statusCode:0 极光后台没有推送记录 安卓手机也收不到消息
使用alias通过GroupPush推送失败的问题
同一套服务器代码。以前的申请的appkey就可以收到。新的就收不到
java服务器对接不上APP
求助:官方控制台发送Andorid能收到推送,服务器发送却收不到
#39

如何推送和获取自定义的内容


如何推送

  • 添加扩展字段 extra
  • 推送自定义消息 Message

一、通知 Notification 对象的 Android 或 iOS 属性下分别传扩展字段 extra,通知内容 alert 会展示,extra 信息不会展示

  • 服务端代码如下:
"notification": {
        "android": {
            "alert": "Hi, JPush!",
            "title": "Send to Android",
            "builder_id": 1,
            "extras": {
                "newsid": 321//此处传 Android 的 extra 信息,key 和 value 都由你自己定义,可以传多个。
            }
        },
        "ios": {
            "alert": "Hi, JPush!",
            "sound": "default",
            "badge": "+1",
            "extras": {
                "newsid": 321//此处传 iOS 的 extra 信息,key 和 value 都由你自己定义,可以传多个。
            }
        }
    },
  • 官网推送 - 展开可选设置
    image

二、自定义消息 Message,与通知 Notification 一样,是一条推送的实体内容对象之一,主要区别在于自定义消息完全不会展示出来

代码示例:

    "message": {
        "msg_content": "Hi,JPush",
        "content_type": "text",
        "title": "msg",
        "extras": {
            "key": "value"// Message 信息同样可以添加 extra 字段
        }
    },

如何获取上述自定义信息


一、Notification 的 extra 信息的接收

Action - JPushInterface.ACTION_NOTIFICATION_RECEIVED.
JPushInterface.EXTRA_EXTRA
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
  // 取得Extras字段内容
  NSString *customizeField1 = [userInfo valueForKey:@"customizeExtras"]; //服务端中Extras字段,key是自己定义的

二、自定义消息 Message 的接收

Action - JPushInterface.ACTION_MESSAGE_RECEIVED
- (void)networkDidReceiveMessage:(NSNotification *)notification {
        NSDictionary * userInfo = [notification userInfo];
        NSString *content = [userInfo valueForKey:@"content"];
        NSString *messageID = [userInfo valueForKey:@"_j_msgid"];
        NSDictionary *extras = [userInfo valueForKey:@"extras"]; 
        NSString *customizeField1 = [extras valueForKey:@"customizeField1"]; //服务端传递的Extras附加字段,key是自己定义的     
    }


如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




关于设置.AndroidManifest.xml 中配置点击通知要打开的 activity 怎样才能打开Activity
发送数据,显示内容的问题
ios 推送的时候如何传参?
在应用未启动状态下,发送一条消息,IOS 的APNs通知能够接到,打开应用之后,还会不会接到Jpush推送的离线消息?
关于极光推送服务器端推送的一个问题
如何实现收到消息的同时收到一个 URL
android获取推送通知,在线等
android只能接收到内容 接收不到标题
可以接收自定义消息,但接收不到JPushInterface.EXTRA_MESSAGE)
ios 发送消息怎么加入一些参数,用来处理推送的界面跳转
JPush 常见问题目录
api发送通知1009
andorid推送设置了附加字段在测试包可以接受到,正式包貌似无作用?
java SDK如何发送图片链接呢?或者富文本图片
极光推送提示app_key format is error
怎么样通过点击的通知获取对应的自定义消息
iOS 通知消息。v3.1.0极光版本
求助:极光推送APIRequestException
PHP 发送自定义消息 前端收不到 extras 键值
push api 问题请教
#40

iOS 如何设置 title 和 subtitle

注:Android 直接提供了字段设置 title,阅读文档


一、展示效果介绍:

iOS 10 以下支持设置标题 title ,设置后 title 值将取代通知栏上的应用名称:

iOS 10 及以上支持设置标题 title 和 subtitle,title 和 subtitle 自带加粗效果,无法取消,展示效果如下图:

二、官网推送传值介绍:

选择推送通知 → 选择 iOS 目标平台 → 展开可选设置 → iOS 可选设置下有 title 和 subtitle 选择

三、Push API 推送传值介绍:

iOS 的 alert 是支持 json 对象的,所以你可以传递一个固定格式的 json,比如:

{
    "notification" : {
         "ios" : {
                 "alert" : {
                     "title" : "JPush Title", //可选设置
                     "subtitle" : "JPush Subtitle" , //可选设置
                     "body" : "JPush Body" //必填,否则通知将不展示,在不设置 title 和 subtitle 时直接对 alert 传值即可,不需要特地写 body 字段
                 }, 
                 "sound" : "sound.caf", 
                 "badge" : 1, 
                 "extras" : {
                      "news_id" : 134, 
                      "my_key" : "a value"
                 }
            }
       }
}

极光提供的各语言的服务端 SDK 均已支持传 title 和 subtitle,如果你所使用的 SDK 不支持,请更新到最新版本。

1、Java SDK (从 3.2.11 版本开始支持)
example 示例: GitHub地址点我

    public static void testSendIosAlert() {
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);

        IosAlert alert = IosAlert.newBuilder()
                .setTitleAndBody("test alert", "subtitle", "test ios alert json")
                .setActionLocKey("PLAY")
                .build();
        try {
            PushResult result = jpushClient.sendIosNotificationWithAlias(alert, new HashMap<String, String>(), "alias1");
            LOG.info("Got result - " + result);
        } catch (APIConnectionException e) {
            LOG.error("Connection error. Should retry later. ", e);
        } catch (APIRequestException e) {
            LOG.error("Error response from JPush server. Should review and fix it. ", e);
            LOG.info("HTTP Status: " + e.getStatus());
            LOG.info("Error Code: " + e.getErrorCode());
            LOG.info("Error Message: " + e.getErrorMessage());
        }
    }

2、PHP SDK
example 示例: GitHub地址点我

try {
    $response = $client->push()
        ->setPlatform(array('ios', 'android'))
        ->addRegistrationId($registration_id)
        ->setNotificationAlert('Hi, JPush')
        ->iosNotification(array(
                      'title' => 'title', //可选设置
                      'subtitle' => 'subtitle', //可选设置
                      'body' => 'body'//必填,否则通知栏不展示
            ),array(
            'sound' => 'sound.caf',
            'extras' => array(
                'key' => 'value',
                'jiguang'
            ),
        ))
        ->options(array(
            // True 表示推送生产环境,False 表示要推送开发环境;如果不指定则默认为推送生产环境
            'apns_production' => false,
        ))
        ->send();
        print_r($response);
} catch (\JPush\Exceptions\APIConnectionException $e) {
    // try something here
    print $e;
} catch (\JPush\Exceptions\APIRequestException $e) {
    // try something here
    print $e;
}

3、C# SDK
alert 实现为接收 Object 类型



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




ios 推送 自定义标题的问题
从简单的测试中了解极光推送可以实现的效果
只能看到标题,看不到内容
极光推送ios 通知
使用PHP SDK 请求推送接口,IOS 怎么设置显示标题?
JPush 常见问题目录
java sdk imageAbsoluteString字段
请问极光推送服务端sdk发送消息时能指定发到android还是ios吗?
#41

如何使通知消息换行展示


1、Android 大文本

  • Android SDK 3.0.0 以上版本支持,支持 api 16 以上的rom

  • 服务端推送在 notification → Android 中设置相关字段

  • 该功能属于原生 ROM 功能,部分深度定制 ROM 可能不支持。

  • 小米和魅族使用大文本查看正文需双指下拉。

2、iOS

  • iOS 通知本身即支持自动换行展示

  • iOS 主动换行添加 \n 即可,PHP 字符串如果用单引号 " 会导致换行失败,变成 \n,换成双引号即可。

  • iOS 还支持 title 和 subtitle ,与内容之间是分行展示的,会自动加粗,阅读设置方法



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




JPush 常见问题目录
从简单的测试中了解极光推送可以实现的效果
推送的通知栏样式
手机收到的推送不能累积
#42

Error code 6009

备注:其他错误码列表 Android 点我;iOS 点我;服务端 点我


  • 由于权限问题,导致的 PushService 启动异常。

  • 出现该报错,一般都是集成失败了,正确集成不会报错。

  • 排查方案:查看客户端日志,根据错误信息来处理。

  • 需要官方协助时,直接提供完整的客户端日志,不要截取。



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




JPush 常见问题目录
#43

Error code 1003

备注:其他错误码列表 Android 点我;iOS 点我;服务端 点我


含义:参数值不合法

注:近期极光在迁移应用至北京机房,在原服务器端我们对错误的写法做了一些兼容,在新版本服务器将不再做兼容,可能会出现之前调 API 成功现在报错的情况,请务必阅读文档说明严格遵循参数的类型和传值要求!

可能的错误原因:

  • 类型不正确,各字段必须严格遵循文档的类型要求,如果自己排查不出原因,打开官方的 log,或断点调试,提供最后所传输的 json 数据给官方人员(在社区发帖)协助分析。

  • audience 非法,该问题常出现在 audience 传具体的 tag、alias、registrationID 等值时,仿照 “all” 的写法传为了字符串(错误写法),请注意在这种情况下传值的大括号前后不要有双引号,参考示例说明

  • sendno 类型不正确、越界。规定范围:(1-4294967295) ,int 类型

  • appkey 不存在,Appkey 未传值,或传值错误(Appkey 在官网应用信息处,不是账户信息中的 DevKey)

  • tags 推送最多支持 20 个、alias 推送最多支持 1000 个、registration_id 推送最多支持 1000 个、tag/ailas 长度不能超过 40 字节

  • tag/alias 、registration_id 值不合法

    • 有效的 tag 、alias 组成:字母(区分大小写)、数字、下划线、汉字、特殊字符@!#$&*+=.|¥

    • 有效的 RegistrationID 长度为 11 或 19 个字节,其中第一位有效字符 [0,1],第二位有效字符 [0-9a],第三位有效字符 [0-2],剩余位有效字符 [0-9a-f]。registrationID 只能在客户端集成后取到,不可以自行在服务端生成。

  • builder_id 必须为 1~1000 之间的数,int 类型。

  • time_to_live 是 int 类型,必须大于等于 0 ,最长可设置 10 天,即 864000,在范围外的值将报错。

  • apns_production : Boolean 类型,请传 false 或者 true ,不要传 0 或 1,也注意不要传成了字符串。

  • override_msg_id 不存在,如果你不需要覆盖功能,请去掉该字段,详细说明

    • 覆盖功能起作用的时限是:1 天。如果在覆盖指定时限内该 msg_id 不存在,则返回 1003 错误

    • 如果你使用的是某语言的 SDK ,在去掉该字段后仍有默认的值且不正确,请在源码中找到默认设置删除或者升级你的 SDK 版本。



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




极光推送经常出现1003错误是什么问题
JPush 常见问题目录
ios推送,web推送的通知能收到,api推送的收不到
JAVA后台进行推送时出现1003,但是相关参数已经设置
推送提示 1003(Audience value is invalid)
推送提示 1003(Audience value is invalid)
推送消息一直提示参数不合法
经常报time_to_live value should be a non-negative integer这个错,请问下是什么原因?
#44

如何针对性的将某条消息推送给某个用户


前提条件:客户端已安装了一个集成了极光 SDK 的 App ,且成功注册取到了 registrationID 值

  • 根据集成指南:AndroidiOS,将极光的 SDK 集成到自己的项目中去,在配置正确的情况下,初始化后可以取到 registrationID ,能取到该 ID 是初始化成功的标志!

  • 如果你是服务端开发,现在需要先测试一下推送功能,可以下载极光的 demo 进行测试
    在官网控制台 - 应用详情 - 推送设置 - Android - 使用浏览器扫码下载一个 Android 的 demo 安装到手机上。

极光提供的几种推送目标:API 文档说明官网推送页面

  • tag、alias、registrationID、segment 都可以用于实现本需求,一般在前三个字段中任选一个去实现。

  • 极光推送针对的是设备,tag、alias 等也是与设备进行的绑定,不管是使用什么样的推送目标,在极光服务器最终都是查询到满足条件的 registrationID 来使得推送送达到设备上。

思路参考:

根据一般的 App 逻辑,开发者会有自己的用户信息,在用户注册登陆后将用户信息传到自己服务器保存。

极光注册得到的 registrationID 是设备标识,不是开发者自己创建的用户,所以需要将「开发者的用户体系」和「极光设备」关联起来,如何做?

  1. 在上传用户信息给自己的服务器时,顺带将极光初始化得到的 registrationID 也对应上传并保存,可直接用该 ID 信息进行推送。该 ID 信息很重要,即便你不使用它进行推送,我的建议是也上传到服务器保存。

  2. 使用别名和标签对用户进行分类、做个性化的标识。

    • 比较简单的做法是:用我们的用户名作为别名值调用极光的客户端 api :AndroidiOS 设置为该 App 的别名;对一些多用户集合性质的分类,就设置为标签,譬如某些用户都喜欢了「周杰伦」,将「周杰伦」三个字作为标签给这些用户设置,当你对「周杰伦」这个标签推送时,他们都会收到。

    • 设置别名标签成功后,也同样的与用户信息一起上传到开发者服务器上保存起来,当要选择推送的时候,在自己的数据库里面去查询即可得到。

    • 如果你们在思考「标签、别名应该是服务端还是客户端设置」,阅读本帖

  3. 需求:用户退出登录后不要收到针对用户的个性化通知,一般思路是项目的用户退出登录—删除别名—点击登录—重设别名。

  • 若你们不允许多设备登录,需要判断用户是否更换设备:将用户某唯一信息与获取到的 registrationID 一起上传,registrationID 与之前相比改变了,则判断为更换了设备。

    • 如果使用 registrationID 推送,则只需要设置推送到当前登录设备的 registrationID 即可,如果是使用别名、标签,请继续阅读:
  • 如果用户未在 A 手机主动点击退出登陆 ,直接在 B 手机登录:

    • 希望 A 手机不再收到消息,那么应该在自己的后台判断出 A 用户“ 换了设备登录” ,让 A 手机自动做登出操作,在客户端置空别名
  • 如果用户直接杀死 A 手机的 App,在 B 手机登录,登出信息无法及时送达到 A 手机上。

  • 需要注意:别名删除后 至 重设别名 期间,推送的消息, 在重设别名后,设备不会收到。

    • 若需要这期间的消息也被收到,需要自己服务器对此进行判断、保存、并在客户端重设别名后,重新向极光发起推送请求。

    • 若需要用户的历史推送消息可被查询,需要自己服务器那边去保存。

  • 注意:对别名标签的操作并不影响广播推送的消息和对 registrationID 推送的消息的接收,只是收不到对别名标签推送的消息,如何完全关闭推送服务:

    • Android 端调用 stoppush

      • 一种本地的状态操作,相当于手动终止 push 服务的效果,这个会导致同时关掉对所有类型消息的接收。
      • 极光推送所有的其他 API 调用都无效。
      • 必须调用 resumepush 才能恢复推送服务。
      • 恢复后,如果推送的消息还在time_to_live内,客户端会收到这条消息。
    • iOS 提示用户在手机[设置]-[通知]-[XX App]选择打开或关闭通知;
      iOS 8 以上可用此方法跳转到通知设置页让用户设置:
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]

    • iOS 也可以调用反注册代码进行关闭:
      [[UIApplication sharedApplication] unregisterForRemoteNotifications];
      • iOS 9 设备使用代码反注册 APNs ,再调用代码注册 APNs ,需要杀死应用后,再重新开启应用才会有 APNs 提示(这里可能与系统本身 bug 有关)。
  • 可能需要了解的内容:消息的生命周期,离线消息



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




iOS 推送退出账号后 依然可以收到推送
JPush 常见问题目录
未登录状态,唤醒用户消息通知,如果一个账号在多个手机上登陆,一个手机又多个账号登陆,通知是发到哪?用户在哪看到消息通知?
换手机登录账号,原手机收到推送消息,新手机下载app使用 收不到推送消息
关于极光推送的数据问题
根据用户id推送通知到安卓App
根据用户id推送通知到安卓App
app混合开发集成极光推送
app退出停止极光推送问题
根据tag 推送时,tag不存在时报错,无具体报错报错只有一个{} 没有具体信息,附上错误信息
用了你们官网的demo出现问题要咨询
关于非原生的app推送问题
用registrationId推送和别名推送哪个好
回复评论推送和指定用户群体推送
极光推送标签问题
使用设备id推送没有问题,设置别名出错
请问怎样将注销~登录的这段时间里的推送消息保留为离线,登录后再收到这段时间的推送?
是用registrationId推送比较好还是别名比较好
关于多终端推送问题
极光推送能按照某一条件实时推送吗?比如:订单的物流信息
从简单的测试中了解极光推送可以实现的效果
关于PHP往APP上推送的问题 第一次使用
同一个设备,更新别名后,无法推送
推送消息
极光 前台 后台服务器之间的处理
Android极光推送切换用户时怎么解除别名绑定
问个小问题,关于推送的
JPush能否实现2个客户端登陆时强制下线第一个客户端的功能
Alias length is no more than 40!
极光推送的离线消息(默认1天)到底是什么含义?
推送实现个推功能是否要设置别名
极光推送的场景应用
设置别名和 tags 总返回6002(每设置失败 8s 后再发请求)
iOS10及以上版本,用户登录状态接收推送,退出就不接受推送怎么处理,谢谢
ios 推送国际化的问题。
#45

如何开通 VIP 服务,VIP 服务与免费服务有什么区别


1、免费与付费用户的区别:JPush 功能对比

  • 免费用户可以使用基本的推送服务,不会被强制收费。

  • 由于极光所有的免费用户共享免费通道和推送速度(二十万条/秒),所以在推送高峰期,免费用户会存在消息延迟可能,延迟时间根据高峰情况波动。

  • VIP 用户使用的单独的专用通道,不受其他人推送的影响,所以不会受高峰期影响导致延迟。

  • 文档中标注为 VIP 专属接口的 API 只提供给 VIP 客户,包括:

    • 消息统计:针对一条消息 (一个 MessageID)的完整统计数据。
    • 用户统计:近 2 个月内某时间段的:新增、在线、活跃用户数据。
    • 获取用户在线状态:可查询近 10 分钟内是否在线、最后上线时间。
    • 管理员 API :可实现创建、删除 App,上传证书。
  • 其他说明:

    • VIP 客户技术支持是一对一 24 小时服务,负责您公司的极光客户经理会为你们创建专门的群进行相关支持服务,紧急情况可直接与客户经理电话联系。

    • 免费用户技术支持由于对接的用户很多,不保证及时的支持服务,请在咨询后耐心等待,建议优先在社区搜索问题。

    • Android 厂商通道(小米、华为、魅族、Google FCM、OPPO)仅提供给 VIP 客户。

    • 消息推送总数没有限制,但对推送频率有限制,VIP 用户拥有更高的频率上限,阅读 API 调用频率限制文档

    • 远程定时任务,免费用户当前未过期的任务总数不能超过 100 个,VIP 用户可以申请提高上限,最高可达 2000。

    • JPush 短信补充服务,需要开通短信 VIP ,可自行充值

    • VIP 客户可以提出定制需求,需求通过产品评估后将实现,可提供定制版客户端 SDK ,服务端功能。

    • VIP 客户支持子账号功能,母账号可以给子账号分配官网各项信息的查看和使用权限。

    • 私有云客户可以在企业内部实现推送服务,相关数据均保存在企业内部。

    • 私有云客户可以定制 PC 客户端 & PC Web 推送。

2、付费相关的业务均需要与极光商务联系,商务将安排具体的客户经理与您联系,只有客户经理有权报价。

  • QQ 公众号:800024881 ( Mac 版本的 QQ 上没有公众号这个功能,请使用其他版本 QQ 联系)

  • 电话:400-612-5955(电话若没有人接听,客服可能因会议等原因离开了工位,请等待一下重拨)

  • 邮箱:sales@jpush.cn

  • 其他渠道:可以在社区私信我、在开发者群可联系 JPush QQ 1206559424、发邮件给 support@jpush.cn

  • 为便于迅速进行登记与联系,请提供如下信息:

    • 公司名称:

    • 地区(我们是分区域进行联系的,如果是有总公司、分公司,那么提供您将会付费的公司所在区域):

    • 您贵姓:× 先生/女士

    • 联系方式(为迅速联系,请提供您的电话,若愿意,还可以提供您的 QQ 或者微信):

    • 您的需求(所需开通的服务,需要咨询的内容):

    • 您的应用是什么类型的,有没有上线,应用的 Appkey:



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




厂商通道收费吗?
第三方系统收不到推送的消息,现在我用了Firebase,怎样能让JPush能推送到第三方?
C# SDK 能不能实现消息实时监听
API 调用频率控制
极光推送给离线设备推送消息后,设备在几个小时后连上网络了,为什么没有收到消息?
苹果手机推送目标和成功的数量都是0
JPush 常见问题目录
【jpush】请问自定义目标出现0是怎么回事呢
极光推送开发证书能收到推送但生产证书收不到推送
#46

通知栏右侧大图如何实现


iOS

Android

  • 从 JPush Android SDK v3.1.7 开始支持

  • REST API 在 Notification - Android 新增字段 large_icon 支持该功能

  • large_icon 传网络图片时,不能超过 30k;传本地资源路径时,只需要填文件名称,不需要任何前缀后缀

  • Android 的大图标大部分情况下显示在通知栏消息右侧,有可能在左侧显示,这与设备系统有关

  • 效果:
    screenshot-16
    screenshot-4



如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




adnroid 右侧 图标 抖音 效果
#47

Error code 1004

备注:其他错误码列表 Android 点我;iOS 点我;服务端 点我


该错误在调用 REST API 时出现,代表验证失败,请看:调用验证说明

排查方案:

  • 检查 Appkey 与 MasterSecret,是否多了空格,是否传反了。

  • Appkey 与 MasterSecret 在应用详情里
    image

  • 是否无意间重置了官网的 MasterSecret

  • 生成算法是否弄错,正确写法:base64_auth_string 的生成算法为:base64(appKey:masterSecret)


如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




#48

Undefined symbols for architecture i386


iOS 若编译报错 Undefined symbols for architecture i386 是因为 3.0.0 及以上版本 JPush SDK 将不再支持处理器为 i386 的模拟器,支持真机,处理办法请阅读:

1、 xcode8.1 iOS模拟器运行编译报错

2、 iOS导入3.0.7版本SDK,模拟器运行报Undefined symbols for architecture i386:

如果是使用 ionic 请使用这个命令:

ionic cordova build ios --device

如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




#49

iOS 通知送达数


推送历史 - 消息详情 - iOS 送达数是新增的一个统计项,需要实现上报才能展示。

  1. 定义:送达到设备并展示出来的通知数量,与 “iOS 成功数” 区别在于是否真实送达到了设备上。
    (iOS 成功数代表消息成功发至了 Apple 服务器,等待 Apple 服务器的下发)

  2. 上报条件

    • iOS 10 设备,集成 3.0.7 及以上版本的 iOS SDK

    • 借助 Service Extension 进行上报,推送消息时必须勾选 “可选设置”中 mutable-content 选项(调用 API 请设置 Notification → iOS → mutable-content 字段为 true)

  3. 功能实现方法:文档,建议参考 JPush SDK 包中的 example。

    • 将 jpush-extension-ios-xxx.a 和 JPushNotificationExtensionService.h 两个文件引入到您的 Service Extentsion 工程中。
    • 添加 Framework:libz.tbd 和 libresolv.tbd。
    • 调用 [jpushSetAppkey:] 方法设置您的 appkey,请注意这里的 appkey 应该和您极光应用的 appkey 相同。
    • 调用 [jpushReceiveNotificationRequest:] 方法上报您的 apns 消息,完成送达统计;在该方法的 block 回调中进行 apns 的显示。

附加问题:

集成 3.0.7 及以上版本的 iOS SDK 运行后报如下错误, jpush-extension-ios-xxx.a 与 jcore-ios-xxx.a 冲突

ld: warning: object file (/Users/rongyao/huangyq/48_sha/xwolves48/Program/client/frameworks/runtime-src/proj.ios_mac/Lib/jpush-extension-ios-1.1.1.a(JPushExtensionTCPSocket.o)) was built for newer iOS version (10.0) than being linked (8.0)
ld: warning: object file (/Users/rongyao/huangyq/48_sha/xwolves48/Program/client/frameworks/runtime-src/proj.ios_mac/Lib/jpush-extension-ios-1.1.1.a(JPushExtensionSRVResolver.o)) was built for newer iOS version (10.0) than being linked (8.0)
duplicate symbol __sisHostDomains in:
    /Users/rongyao/huangyq/48_sha/xwolves48/Program/client/frameworks/runtime-src/proj.ios_mac/Lib/jpush-extension-ios-1.1.1.a(JPushExtensionSession.o)
    /Users/rongyao/huangyq/48_sha/xwolves48/Program/client/frameworks/runtime-src/proj.ios_mac/Lib/jcore-ios-1.2.0.a(JPUSHAddressController.o)
ld: 1 duplicate symbol for architecture armv7

这代表你们没有按照要求将 extension 的文件引入到 Service Extentsion 工程中,而是放在了主工程。

请务必参考 demo 配置,如下图,如果你不需要上报通知送达数,则可以删除 extension 相关的文件。
image


如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




#50

点击数上报


  1. 定义:用户通过点击通知栏消息进入应用的次数。

  2. 对于 Android 应用,需要实现了统计分析 API 才有这个统计数据。

    • API - reportNotificationOpened 用于上报用户的通知栏被打开。
  3. iOS 通知消息的获取方法中,[JPUSHService handleRemoteNotification:userInfo];用来上报

    • iOS SDK 的初始化位置会影响点击的成功上报,如果没有正确配置,log 中会打印:
      W - [JIGUANGService] 请将JPush的初始化方法,添加到[UIApplication application: didFinishLaunchingWithOptions:]方法中,否则JPush将不能准确的统计到通知的点击数量。
  4. 上报成功后会在推送历史 - 详情 - 点击、自定义点击中展示数据。


如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




#51

Android 如何区分正式和测试环境


  1. 使用相同的 Appkey 和 包名,推送时使用 registrationID、tag、alias 针对性的对测试机进行推送测试

  2. 如果一定要测试广播推送,那么在官网新建一个测试应用,Appkey 和包名不一样,专门用作测试

  3. 如果你还需要包名一样并测试广播推送,那么在官网新建一个极光账号,新建一个测试应用,配相同的包名进行测试。

说明:实际上采用第一个方案即可,广播推送和其他方案推送本质上没有区别。

参考:


如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




#52

官网推送证书配置常见疑问(过期,有效期,证书状态等)


  1. 官网推送证书过期,更新后是否需要打包 App 重新上架?
    A. 不需要。

  2. 官网推送证书的有效期是否可以设置?
    A. 不能,该有效期是 Apple 决定的,自生成起有效期 1 年。

  3. 是否有不过期的鉴权方式?
    A. 有,建议使用 Token Authentication 配置,文档阅读鉴权方式二

  4. 官网推送设置 - iOS 鉴权方式是否需要同时配置?
    A. 不需要,二选一即可,如果都配置了,极光也会根据你选择的鉴权方式去做鉴权

    • 因此如果你以前配置的证书鉴权过期了,可以直接换成 Token Authentication 配置,过期证书不会再影响鉴权
  5. 证书配置 - 是否将生产证书用于开发环境 选项有什么作用?
    A. Apple 的生产推送证书允许用于开发环境的推送,勾选将生产证书用于开发环境,开发者可以仅上传生产证书,即可在官网推送平台处选择开发环境做推送,不用再生成和上传开发证书。

    • 因此如果你上传的开发证书过期了,而生产证书没有,则可以直接勾选该选项,不需要重新更新开发证书。
  6. APNS 证书文件的状态
    A. 点开 APNS 证书文件后的问号可以看到解释说明,该问号展开的内容仅是解释说明,实际状态如图
    image

    • 当显示已验证时代表推送证书正常可用。

如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




#53

官网推送正常收到,调 API 推送收不到,或反之


说明:其中之一推送可以正常收到,代表客户端集成没有问题。

排查方案:

  1. 对比 web 与 API 推送历史 - 详情中的推送内容的区别,常见情形如下:

    • iOS 环境不一致问题:API 推送消息给 iOS,需要设置 apns_production 指定推送的环境,false 为开发,true 为生产。

      • 消息详情中,推送平台 ios 代表开发,ios-product 代表生产,还可以从 options →"apns_production 字段的值来辨别。

      • 如果 API 推送传的是 true,但消息详情中却显示的 false(官网详情显示的内容是实际传递给极光的值),那么需要检查 API 推送的代码,是否有覆盖、引用、修改的代码和实际调用的代码不一致等问题

    • Appkey 不一致:官网在应用设置中查看 Appkey,调 API 推送在调用验证处查看所传 Appkey,客户端配置的 Appkey 会在 log 中打印出来。推送使用的 Appkey 必须和客户端配置的一致。

    • 推送目标不一样:例如官网是给 registrationID 推送 / 广播推送,API 是给别名推送

    • 没有给 Android 或者 iOS 传值:推送的有效目标只有 iOS 设备,但 Notification 中只给 Android 传参,则 iOS 肯定收不到,或反之。

    • alert 为空(通知内容为空):若该字段为空,则 Notification 消息不会展示。

    • 其中一个推送的是自定义消息:自定义消息默认不展示,阅读本帖

  2. 提供收不到消息的设备的 registrationID 和推送的消息的 MessageID(收到的和未收到的)给官方人员查询。

  • Message ID(调用 API 请求成功后会返回 msgid ,官网 - 推送历史 - 操作 - i 详情里面也可以查看该信息,如果查不到历史请注意筛选条件,历史只保存 30 天)


如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ




#54

推送历史的数据展示问题


  1. 如果调 API 同时推送了 Notification 和 Message ,则这条消息会被分类在通知,不影响消息下发。

  2. iOS 自定义消息的目标和送达数需要展开消息详情查看「自定义目标」「自定义送达」

    • iOS 的 apns 通知(Apple 服务器)和自定义消息 Message(极光服务器)是走的不同的通道下发的,所以在官网-推送历史-详情里面 iOS 的数据分了两种

    • 目标|成功|送达|点击 是 Notification 通知的数据
      自定义目标|自定义送达 是 Message 自定义消息的数据

  3. iOS 送达数相关,阅读本帖

  4. 点击数相关,阅读本帖

  5. 推送列表中爆红的消息代表是失败的,展开消息详情可以看到具体错误提示,根据错误码处理问题

  6. 官网的推送历史永久保存,可以手动删除;API 推送的历史不可删除,仅保留 30 天。


如果对你有帮助,点个赞 :sparkling_heart: 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ