MSSDK

SDK 文档


Push集成文档

<h3>总述</h3> <ol> <li>MSSDK的极光推送,采用封装极光推送的方案。可以通过极光的后台进行推送操作。集成过程也需要有极光的相关账号以及一些配置。</li> <li>对于苹果的远程推送,都是走的APN。因此需要设置相应的签名和证书。xcode工程中也需要做一些设置。</li> </ol> <h3>证书和签名</h3> <ol> <li>开发者账号中,需要为当前的应用开通push功能。</li> </ol> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/1840248919edf32e26b925c092d67562?showdoc=.jpg" alt="" /></p> <ol> <li>苹果提供两种鉴权。一种是推送证书方式,一种是Auth Key的方式。建议采用AuthKey的方式。获取方式可参考<a href="https://docs.jiguang.cn//jpush/client/iOS/ios_cer_guide/">这里</a></li> </ol> <h3>极光后台配置</h3> <ol> <li>创建极光应用,如果已创建配置,可忽略此步骤。</li> <li>将从苹果后台获取的AuthKey配置到极光推送配置中。 <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/412131e9da21ee9732b8375d8b961be0?showdoc=.jpg" alt="" /></li> </ol> <h3>xcode工程配置</h3> <ol> <li> <p>添加UserNotificationn.Framework到工程中。 <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/2951be091b9a8102547ae56c4c8efea7?showdoc=.jpg" alt="" /></p> </li> <li>添加Capability中添加Push能力。并在background model中勾上remote notification.</li> </ol> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/aa52af8d0bb6506a6d12fdf77fa93b1e?showdoc=.jpg" alt="" /></p> <h3>SDK配置</h3> <p>将获取极光应用的appId,配置在msConfig.json中。如已配置,可忽略。 <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/03226b87602acd5370c4daace8bf2dc2?showdoc=.jpg" alt="" /></p> <h3>代码集成</h3> <ol> <li> <p>在AppDelegate中 <code>#import &lt;UserNotifications/UserNotifications.h&gt;</code></p> </li> <li> <p>上传device token</p> <pre><code class="language-objc"> - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [MSLDLog logInfo:@"mspush didRegisterForRemoteNotificationsWithDeviceToken"]; [[MSLDSDK sharedInstance] msld_application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; } </code></pre> </li> <li>处理收到的远程通知</li> </ol> <pre><code> - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSLog(@"mspush application didReceiveRemoteNotification fetchCompletionHandler"); if (application.applicationState == UIApplicationStateActive) { // 程序当前正处于前台 NSLog(@"mspush application didReceiveRemoteNotification fetchCompletionHandler 前台"); } else if (application.applicationState == UIApplicationStateInactive) { // 程序处于后台进入前台 NSLog(@"mspush application didReceiveRemoteNotification fetchCompletionHandler 后台"); } // Required, iOS 7 Support NSDictionary * param = nil; if (userInfo) { param = @{@"userInfo":userInfo}; } [[MSLDSDK sharedInstance] actionWithLDUrl:ROUTE_PUSH_HANDLE_REMOTE_NOTIFICATION param:param success:nil fail:nil]; completionHandler(UIBackgroundFetchResultNewData); } - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { [MSLDLog logDebug:@"mspush application didReceiveRemoteNotification"]; // Required, For systems with less than or equal to iOS 6 NSDictionary * param = nil; if (userInfo) { param = @{@"userInfo":userInfo}; } [[MSLDSDK sharedInstance] actionWithLDUrl:ROUTE_PUSH_HANDLE_REMOTE_NOTIFICATION param:param success:nil fail:nil]; } </code></pre> <h3>其他功能</h3> <h4>1. 设置badge Number</h4> <p>大部分情况下,切到前台之后,会去掉小红点。</p> <pre><code> -(void)applicationWillEnterForeground:(UIApplication *)application { // 清除小红点,一般已读消息后,清除小红点 NSDictionary * param = @{@"number":@0}; [[MSLDSDK sharedInstance] actionWithLDUrl:ROUTE_PUSH_SET_APP_BADGE_NUMBER param:param success:nil fail:nil]; }</code></pre> <h4>2. 设置别名</h4> <pre><code>NSMutableDictionary * params = [NSMutableDictionary dictionary]; [params setObject:@"abcAlias" forKey:@"alias"]; [params setObject:@(1) forKey:@"seq"]; [[MSLDSDK sharedInstance] actionWithLDUrl:ROUTE_PUSH_SET_ALIAS param:params success:^(NSString *msg, id data) { [MSLDLog logDebug:@"设置Alias成功! msg:%@, data:[%@]", msg,data]; } fail:^(MSLDErrorCode code, NSString *msg, id errorData) { [MSLDLog logDebug:@"设置Alias失败! msg:%@, errorData:%@", msg,errorData]; }]; </code></pre>

页面列表

ITEM_HTML