小米应用商店:小米推送常见问题汇总(下)

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:小米开放平台网络

小提示:您能找到这篇{小米应用商店:小米推送常见问题汇总(下)}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的小米应用商店:小米推送常见问题汇总(下)内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">四、接入过程问题

< ">1.第一次接触安卓版小米推送服务,使用你们的demo没有成功,怎么办?

< ">第一次使用小米推送服务(安卓版),请仔细阅读如下指南:小米推送Android版快速接入指南< color: rgb(127, 127, 127);">(https://dev.mi.com/console/doc/detail?pId=100)。

< ">一般注册推送服务没成功,常见的原因如下:

< ">1)没有开启推送服务。使用推送服务前需要登录开发者账号、创建应用、开通推送服务3个步骤,缺一不可。

< ">2)没有正确配置AndroidManifest.xml文件。需要特别注意包名、权限部分,包名需要跟开发者站点上开通推送服务的一致,权限的前缀需要改成包名。

< ">3)系统时间错误。由于小米推送服务需要使用https请求向服务器注册一个匿名账号,在次过程中如果系统时间错误,会引起https过期,导致注册不成功。

< ">4)联网被阻止。小米推送服务客户端需要使用5222和443两个端口,如果在公司内网,需要联系IT部门把这两个端口开放。同时需要检查应用的联网是否会被一些手机安全助手阻止。需要特别注意的是,在MIUI系统上,长连接是由“小米服务框架”这个系统应用维护的,因此需要确保这个应用的联网并没有被阻止。

< ">2.为什么onNotificationMessageArrived方法没被调用到?

< ">首先,确认接入是否正确,这个方法需要在manifest中添加<action android:name=”com.xiaomi.mipush.MESSAGE_ARRIVED”/>这个action。

< ">在MIUI系统上,这个方法的调用需要同时满足如下两个条件:

< ">1)新版的MIUI。这个特性是在2015年才加进小米推送服务的,因此需要MIUI升级到较新的版本才能调用这个方法。

< ">2)需要应用驻留后台。小米推送服务的通知栏消息,是可以在应用不启动的前提下,就弹出通知栏消息的,在这种情况下,由于MIUI的自启动管理,限制了应用不能在被杀后被后台唤醒,所以推送消息不能直接唤醒应用执行这个方法。

< ">3.为什么我在onNotificationMessageClicked方法中的startActivity不能调起目标界面?

< ">由于onNotificationMessageClicked中传入的context是application context,本身没有activity栈,因此需要在创建activity时候加入NEW_TASK的flag:Intent i=new Intent(context,MyActivity.class);i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);



< ">4.为什么我的设备在调用registerPush的时候会出现no account的错误?

< ">在app第一次在一台设备上注册推送服务时,sdk会通过https请求,从小米推送服务器生成一个匿名账号。这个错误是由于这个请求失败导致的。一般请求失败常见的原因包括如下几种:

< ">1)系统时间错误。时间错误会导致https在校验证书有效期的时候,出现证书过期,导致https请求失败。

< ">2)网络原因。这个大部分的原因都是设备架了代理服务器或连了vpn,如果排除这些原因,就检查一下app是否申请了联网权限,是否被什么安全软件阻止了登录,公司wifi是否能用,等等。

< ">3)如果是在MIUI系统上,生成匿名账号是在一个叫小米服务框架的系统app上完成的,还需要检查这个app的联网是不是在安全中心的联网控制中被手动关闭了。

< ">5.我们iOS应用还没发布到苹果商店,是不是正式包还收不到消息,要等发布了才行?

< ">将MISDKRun设置为online,然后使用adHoc的证书即可收到生产环境的消息;

< ">6.如何进行通知分类、实现通知栏多条消息并存?

< ">可以使用notifyId(Integer id)可选项。

< ">https://dev.mi.com/console/doc/detail?pId=1278#_3_3

< ">默认情况下,通知栏只显示一条推送消息。如果通知栏要显示多条推送消息,需要针对不同的消息设置不同的notify_id(相同notify_id的通知栏消息会覆盖之前的)。

< ">7.注册推送,SDK日志提示“MIIDManager startMIIDUpdateListener failed cause lack of GET_ACCOUNTS permission”。

< ">这是推送的一种消息推送方式,不影响正常使用;当sdk执行按miid推送消息的时候,会检查一下app有没有获得miid的权限,如果没有,会打印相关消息。

< ">8.注册推送提示“Don't send message before initialization succeeded!”

< ">Mipush sdk内部逻辑,检测消息通道是否顺畅,不影响推送功能正常使用。

< ">9.Mipush是否支持通知栏自定义显示图片/如何自定义通知栏样式?

< ">SDK可以根据推送消息中指定的layout文件和填充内容,自由定制展示样式。在MIUI中,通知展示由系统通道负责,需要MIUI升级后才支持自定义通知。具体使用方法可以参考《服务端Java SDK文档》。另外,关于自定义通知栏layout的配置目前只支持app本地资源已有的图片和布局文件,可以通过这个服务器自定义布局显示出来;暂不支持网络图片下载。

< ">10.推送消息支持静默推送(即无声音、无灯光、无震动)吗?

< ">支持,可以在构建消息时调用notifyType(Integer type)方法,将type设置成0即可。

< ">notifyType表示设置通知类型,type类型支持以下值:

< ">1:使用默认提示音提示

< ">2:使用默认震动提示

< ">4:使用默认led灯光提示

< ">-1(系统默认值):以上三种效果都有

< ">0:以上三种效果都无,即静默推送。

< ">并且支持1,2,4的任意OR运算来实现声音、震动和闪光灯的任意组合。

< ">11.timeToLive最大时长为多少?

< ">timeToLive表示消息的生命周期,若用户离线,设置消息在服务器保存的时间,单位:ms,服务器默认最长保留14天。

< ">12.如何开启/关闭app在前台时的通知弹出?

< ">应用在前台的情况下,通知消息到达客户端后是否弹出通知可以通过服务端来设置。服务端调用Message.Builder类的extra(String key,String value)方法将EXTRA_PARAM_NOTIFY_FOREGROUND的值设置为"0"或者"1"。当EXTRA_PARAM_NOTIFY_FOREGROUND值为”1″时,app会弹出通知栏消息;当EXTRA_PARAM_NOTIFY_FOREGROUND值为”0″时,app不会弹出通知栏消息。注:默认情况下会弹出通知栏消息。

< ">示例:

Message message = new Message.Builder()

          .title(title)

  &nbs社会舆情收集p;       .description(description).payload(messagePayload)

          .restrictedPackageName(MY_PACKAGE_NAME)

          .passThrough(0)

          .notifyType(1)

          .extra(Constants.EXTRA_PARAM_NOTIFY_FOREGROUND, "0")

          .build();

< ">13.给IOS10系统推送消息时,如何设置title?

< ">如果使用的Java或PHP的SDK,可以使用IOSBuilder的title、subtitle、body方法。

< ">14.如何理解消息回执中的barStatus参数?

< ">barStatus表示用户是否允许该app的消息在通知栏展示。barStatus的值只和用户本地的配置有关系。用户设置允许app弹出通知,返回Enable;用户设置不允许app弹出通知,返回Disable;本地获取状态出现异常时,返回Unknown。Disable时,如果有消息到达,不会显示通知;Enable时,如果有消息到达,会显示通知。

< ">15.为什么有时候获取到的regID是非正式环境的?(平台类型是iOS类型)

< ">客户端获取到的regId环境,与MiSDKRun有关。MiSDKRun=debug为测试环境,MiSDKRun=online为正式环境。

< ">16.IOS平台接入时是否支持swift?

< ">支持,具体用法请参见文档:< color: rgb(127, 127, 127);">https://dev.mi.com/console/doc/detail?pId=98#_3_13。

< ">17.使用推送运营平台发送消息时,如何设置notifyId?

< ">可以在“通知分类”输入框里设置。

< ">18.IOS和android平台需要分别创建应用还是可以使用同一个?

< ">IOS和android平台需要创建不同的应用,要分开创建,AppId和APPKey也是不同的。

< ">19.收到回调:onCommandResult:command={Registration},resultCode={70000001},reason={the push is not connected.},category={null},commandArguments={null}

< ">该errorCode一般是由于网络问题导致的,请先确认设备网络是否正常,网络是否使用代理。另外,修改系统时间也会导致上述错误。可通过设备浏览器登录如下链接来确认设备网络及设置是否正常:

< ">国内:https://api.xmpush.xiaomi.com/_x/monitor/status

< ">海外:htt电商运营常识ps://api.xmpush.global.xiaomi.com/_x/monitor/status

< ">20.苹果手机的应用在打开状态时收不到消息,在后台和未打开状态时却能收到消息,这种现象正常吗?

< ">正常。苹果手机的应用在前台时,消息是不会展示的,但手机实际是收到消息的,可以在接受消息的回调中打断点,或者打印log进行验证。

< ">< font-size: 18px;">五、推送统计数据问题< font-size: 18px;">

< ">1.计划推送数是指什么?怎么计算的?

< ">计划推送数是指推送请求所覆盖的所有的设备数,如果目标对象的选取是所有用户,那分母就是历史上所有激活过推送服务的有效设备数;如果是按照标签选取的,那分母是历史上所有订阅过这个标签的有效设备数;如果是按照别名或者regID来选取,那么分母就是所请求的所有合法的别名或regID。

< ">2.设备有效性的判定规则:

< ">如果应用调用了unregisterPush,或者在MIUI上卸载了,或者超过3个月都没有和小米服务器建立过长连接,则会判定设备失效。

< ">3.为什么在数据统计后台看,按天统计中,会出现计划推送少于送达数的现象?



< ">这是正常现象,在按天统计中,计划推送是指当天的所有请求总共覆盖了多少设备数,而送达数则是当天这个app所有的送达,因此这个送达数不但包括当天发的消息送达了多少,也包括了之前发的消息,作为离线消息当天抵达设备的数量。因此这个送达数是存在大于计划推送数的可能性的。

< ">4.如何查询统计数据:

< ">1)使用服务端SDK中的数据API直接拉取统计数据,可方便地与开发者现有的统计系统结合;

< ">2)登录开发者站,进入应用的推送服务查看推送统计数据;

< ">5.从计划推送量到实际下发量再到送达量会有一定比例的损耗,如何降低这个损耗?

< ">一方面,可以调用服务端的feedback接口,拉取无效的设备,以后在推送总量里剔除这部分设备。开发者也可以自行维护有效设备集合,减少发送的设备里存在过多取消注册或无效的设备。

< ">另一方面,可以设置合适的ttl(timeToLive消息过期时间),建议如果消息没有实效性的话可以适度增大ttl,也可不设置该值直接使用我们服务器的默认时间(2周),这样的话只要用户在ttl有效期之内上线,就能收到之前推送的消息。

小米应用商店:小米推送常见问题汇总(下)

上一篇:如何使用Instagram算法来帮你的产品推广?
下一篇:亚马逊竞品流量词反查技巧,抢位关键词逆袭排


版权声明:以上主题为“小米应用商店:小米推送常见问题汇总(下)"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    小米应用商店:小米推送常见问题汇总(下)
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“小米应用商店:小米推送常见问题汇总(下)”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通小米应用商店:小米推送常见问题汇总(下)的相关事宜。

关键词:小米应用商店:小米推送

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号