zoukankan      html  css  js  c++  java
  • iOS应用第三方推送的添加

    现在的一些第三方的推送平台挺好用,主要是因为他们有类似微信公众平台一样的管理后台,简单易用,封装了很多开发者需要的推送功能。

    下面以个推为例:

    1.在个推的应用配置iOS部分设置自己的BounleID以及上传自己的推送证书

      推送证书的创建和P12文件的生成请移步:http://docs.igetui.com/pages/viewpage.action?pageId=590063

    2.工程中集成SDK

    这种三方的框架集成比较简单,可以参考个推的APPDemo进行集成,主要就是导入库,然后在APPdelegate配置下就好了。

    demo以及文档地址:http://docs.igetui.com/pages/viewpage.action?pageId=1934080

    3.代码的地方需要注意的是:

    在线的推送和离线的推送入口是不一样的

    离线的时候,是通过苹果服务器周转的推送的delegate入口:

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userinfo {
        // [4-EXT]:处理APN
        NSString *payloadMsg = [userinfo objectForKey:@"payload"];
        if (payloadMsg) {
            NSString *record = [NSString stringWithFormat:@"[APN]%@, %@", [NSDate date], payloadMsg];
            NSLog(@"获得推送消息1:%@",record);
        }
    }

    在线的来自于个推服务器直接的消息发送,个推的delegate,然后可以使用下面的函数做一个本地的通知:

    - (void)GeTuiSdkDidReceivePayload:(NSString *)payloadId andTaskId:(NSString *)taskId andMessageId:(NSString *)aMsgId fromApplication:(NSString *)appId
    {
        // [4]: 收到个推消息
        _payloadId = [payloadId copy];
        
        NSData* payload = [GeTuiSdk retrivePayloadById:payloadId];
        
        NSString *payloadMsg = nil;
        if (payload) {
            payloadMsg = [[NSString alloc] initWithBytes:payload.bytes
                                                  length:payload.length
                                                encoding:NSUTF8StringEncoding];
        }
        
        NSString *record = [NSString stringWithFormat:@"%d, %@, %@", ++_lastPayloadIndex, [self formateTime:[NSDate date]], payloadMsg];
        
        NSLog(@"task id : %@, messageId:%@,内容:%@", taskId, aMsgId,record);
        [self createNotifiction:payloadMsg];
    }

    本地通知:

    -(void)createNotifiction:(NSString *)content{
        //定义本地通知对象
        UILocalNotification *notification=[[UILocalNotification alloc]init];
        //设置调用时间
        notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:0];//通知触发的时间,10s以后
        notification.repeatInterval=2;//通知重复次数
        //notification.repeatCalendar=[NSCalendar currentCalendar];//当前日历,使用前最好设置时区等信息以便能够自动同步时间
        
        //设置通知属性
        notification.alertBody=content; //通知主体
        notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数
        notification.alertAction=@"滑动来查看"; //待机界面的滑动动作提示
        //notification.alertLaunchImage=@"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片
        notification.soundName=UILocalNotificationDefaultSoundName;
        
        //设置用户信息
        notification.userInfo=@{@"type":@"LocalNotification"};//绑定到通知上的其他附加信息
        
        //调用通知
        [[UIApplication sharedApplication] scheduleLocalNotification:notification];
    }

     具体请参考关于个推推送方式文档:

    http://docs.igetui.com/pages/viewpage.action?pageId=2687544#iOSSDK130集成步骤-3、更多集成方案:个推SDK透传消息非APNS(可选)

  • 相关阅读:
    hdu5728 PowMod
    CF1156E Special Segments of Permutation
    CF1182E Product Oriented Recurrence
    CF1082E Increasing Frequency
    CF623B Array GCD
    CF1168B Good Triple
    CF1175E Minimal Segment Cover
    php 正则
    windows 下安装composer
    windows apache "The requested operation has failed" 启动失败
  • 原文地址:https://www.cnblogs.com/rayshen/p/4863308.html
Copyright © 2011-2022 走看看