收不到推送消息?
1.请检查以下几点开发者网站是否启用推送服务,并成功上传证书
1)用Appsecret自行推送的,请确认此secret是否为iOS版本,
2)工程里面plist中MiSDKRun环境参数是否设置妥当。debug为测试环境,online为线上环境
3)必须真机调试,IPA的profile是否与push证书匹配。
4)代码中监听MiPushSDKDelegate,看注册与绑定token是否正常,alias,topic是否设置成功
2.接入时碰到如下提示
Error is Error Domain=NSCocoaErrorDomain Code=3000"未找到应用程序的“aps-environment”的授权字符串"
UserInfo=0x17dbf200{NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}
检查事项同1
3.常见返回错误
1)调用SDK+(void)unregisterMiPush;执行注销操作后,在执行其他方法就会导致报错-101
2)你的程序清除本地数据。NSUserDefaults导致本地保存的regID等丢失。就会导致报错-101
3)解决方法:当回调返回-101时,根据你程序需要,可以重新调用+(void)registerMiPush
4)code=10017;reason=’invalid package name’小米开发者网站注册的bundleID跟你ipa的bundleID
不是同一个
4.脚标或通知栏无法清除?
清除方法:
[[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];
如果无效请尝试,原因是,在推送时badge设置为0,这样你在app中再次设置就会失效
[[UIApplication sharedApplication]setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];
5.SetAlias Subscribe为什么有时成功,有时失败?
SDK中方法为异步操作,setAlias:subscribe:等操作必须在bindDeviceToken:返回成功后再调用。
因为bindDeviceToken成功请求后服务器才会分配账号给设备。如果setAlias操作在它前面执行,会找不到对应设备。
6.接收到推送之后如何取得里面的数据?
当App在后台,通过下面方法
-(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
当新App的时候,通过下面方法
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
7.registerMiPush在没有网络下调用,为什么还会返回成功?
SDK中会检查,如果此操作已经完成过,就不会重复请求服务器。
8.Topic最多可以设置多少个,支持汉字吗?
一个设备最多可以设置300个,支持汉字。
9.如何使用iOS7 Background Remote Notification(消息透传)
App在后台,收到消息后,会在后台运行一段代码。并不会提示用户。比如,App内容升级,Email更新,订阅内容等等
在server端发送消息时extra加入content-available字段。同时xcode工程下激活BackgroundModes-Remote notifications。
10.为什么要使用长连接
在App运行时,APNs会提示用户是否接收消息,很多时候,用户会禁止此功能。导致,推送消息无法送达到用户手机。所以使用长连接功能,可以在App运行时,获取消息推送。
11.在现有版本MiPushSDK下,如何快速使用应用内长连接
操作步骤:
1.添加libMiPushSDK.a,MiPushSDK.h到工程
2.引入库:libresolv.dylib,libxml2.dylib,libz.dylib,SystemConfiguration.framework,MobileCoreServices.framework,CFNetwork.framework,CoreTelephony.framework(如果已经引入,请忽略)
3.加入如下代码,启动长连接
+(void)registerMiPush:(id<MiPushSDKDelegate>)delegate type:(UIRemoteNotificationType)type connect:(BOOL)connect;
4.加入收到消息回调,当客户端收到MiPush推送时,此方法会被调用到,data格式同application:didReceiveRemoteNotification:
-(void)miPushReceiveNotification:(NSDictionary*)data;
5.去掉原有处理通知逻辑,使用下面代替
-(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
[MiPushSDK handleReceiveRemoteNotification:userInfo];
}
本文内容来自于安智宝,本站不拥有所有权,不承担相关法律责任。文章内容系作者个人观点,不代表快出海对观点赞同或支持。如有侵权,请联系管理员(hj@kchuhai.com)删除!