搜索
您的当前位置:首页正文

[iOS]使用JPush实现远程推送RemotePush的步骤

来源:二三娱乐
有关推送,首先我们需要两个文件
  • 真机证书是我们最终要的文件,后缀是.p12.
  • JPush-iOS-SDK-1.8.5文件是为了获取里面lib.运行程序时候拖入工程


    图1-1


p12的制作步骤


AppID的创建过程

  • 在中,点击Member center输入账号密码登陆.
  • 创建App ID[苹果应用程序ID]
  • 点击加号,添加新的ID


  • 在app ID description中,填写ID名字,. ID前缀定义为团队默认ID和一个应用程序ID后缀!
    • appID 一般是: XXXXTeam.Sample.XXX前面是开发团队的名字, 中间是项目名后面是一个自己定义的一串字符
    • Bundle ID 一般是 com.XXXXXXX.Sample

  • 点击ContinueSubmitDone

CSR文件的生成过程

  • 打开Mac OS X系统内的钥匙串访问程序.


  • 存储将要生成的文件


  • 存储的结果



Certificates的创建过程

有两种方法,最简便的方法是:


点击搜索进去

在最下方
  • 选择刚才生成的CSR文件上传


  • 然后Continue,并且下载生成的文件
  • 双击aps_development.cer,会自动安装到钥匙串访问程序内

  • 导出的时候,可以设置密码,也可以不设置.都可以.



生成可用的mobileprovisioning文件

  • 点击Member Center中的Provisioning
  • 点击+按钮
  • 选择与我们刚才创建的相同的App ID
  • 点击ContinueSelect All全选下一步
  • 选择可以进行测试的真机设备


  • 下载mobileprovisioning,保存在桌面上就可以.

到此为止,P12证书的制作就完成了


极光推送后台的配置过程

  • 进入极光推送→控制台.创建新的应用.


  • 上传成功后,会有对应的提示



Xcode代码中的实现过程

  • 双击mobileprovisioning描述文件,也就是我们最后生成的文件.
  • 将开头我们下载的中的lib拖进 工程.编译一下.
  • 引用必要的框架.
  • CFNetwork.framework
  • CoreFoundation.framework
  • CoreTelephony.framework
  • SystemConfiguration.framework
  • CoreGraphics.framework
  • Security.framework
  • libz.dylib
  • 在你的工程里创建一个新的property list文件 填入参数.
{  
    "APS_FOR_PRODUCTION" = "0";  
    "CHANNEL" = "Publish channel";  
    "APP_KEY" = "AppKey copied from JPush Portal application"; 
}

这个appkey 就是你在jpush中创建的那个应用 app key(点击去就可以看到)
CHANNEL 一般默认为0
  • 更改应用程序唯一标识符bundle identifier
  • AppDelegate.m文件的代码实现
- (void)application:(UIApplication *)application didFinishLaunchWithOptions:(id)options 
{
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {     
       //可以添加自定义categories    
       [APService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge|UIUserNotificationTypeSound |UIUserNotificationTypeAlert)                                        
                                          categories:nil];   
    } else {     
       //categories 必须为nil     
       [APService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)                                        
                                          categories:nil];   
    }      
    // Required     
    [APService setupWithOption:launchOptions];
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {      
    // Required     
    [APService registerDeviceToken:deviceToken]; 
}  
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {      
    // Required     
    [APService handleRemoteNotification:userInfo]; 
}  

运行程序即可……

感谢 @李晓飞

Top