IONIC项目JPUSH消息推送IOS集成
来源:互联网 发布:淘宝手机首页素材 编辑:程序博客网 时间:2024/05/19 17:24
1.JPush集成到IONIC项目
参考地址
2.Services.js新增factory
angular.module('starter.services', []).factory('Push',function(){ var push; return{ setBadge:function(badge){ if(push){ console.log('jpush:set badge',badge); plugins.jPushPlugin.setBadge(badge); } }, setAlias:function(alias){ if(push){ console.log('jpush:set alias',alias); plugins.jPushPlugin.setAlias(alias); } }, check: function() { if (window.jpush && push) { plugins.jPushPlugin.receiveNotificationIniOSCallback(window.jpush); window.jpush = null; } }, init: function(notificationCallback) { console.log('jpush: start init-----------------------'); push = window.plugins && window.plugins.jPushPlugin; if (push) { console.log('jpush: init'); plugins.jPushPlugin.init(); plugins.jPushPlugin.setDebugMode(true); plugins.jPushPlugin.openNotificationInAndroidCallback = notificationCallback; plugins.jPushPlugin.receiveNotificationIniOSCallback = notificationCallback; } } };});
3.app.js初始化调用,根据自身需求加在登陆的业务逻辑之后或者之前。
var notificationCallback = function(data){ console.log('received data',data); var notification = angular.fromJson(data); //app是否运行 var isActive = notification.notification; if(ionic.Platform.isIOS()){ window.alert(notification); }else{ //Android } };// jpush init Push.init(notificationCallback); //setAliasPush.setAlias("username");
4.IOS部分
坑爹的IOS部分来了...
1.打开项目目录的Classes/AppDelegate.m
添加头文件
#import "JPUSHService.h"
#import "JPushPlugin.h"
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
self.viewController = [[MainViewControlleralloc]init];
//消息推送注册
//Required
if([[UIDevicecurrentDevice].systemVersionfloatValue] >= 8.0){
//可以添加自定义categories
[JPUSHServiceregisterForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
UIUserNotificationTypeSound |
UIUserNotificationTypeAlert)categories:nil];
}else{
//categories 必须为nil
[JPUSHServiceregisterForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
UIUserNotificationTypeSound |
UIUserNotificationTypeAlert)categories:nil];
}
//Required
// 如需继续使用pushConfig.plist文件声明appKey等配置内容,请依旧使用[JPUSHService setupWithOption:launchOptions]方式初始化。
[JPUSHServicesetupWithOption:launchOptions];
//判断是否由远程消息通知触发应用程序启动
//if ([launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]!=nil) {
//获取应用程序消息通知标记数(即小红圈中的数字)
long badge = [UIApplicationsharedApplication].applicationIconBadgeNumber;
if (badge>0) {
//如果应用程序消息通知标记数(即小红圈中的数字)大于0,清除标记。
badge--;
//清除标记。清除小红圈中数字,小红圈中数字为0,小红圈才会消除。
[UIApplicationsharedApplication].applicationIconBadgeNumber =0;
[JPUSHServicesetBadge:0];
}
//}
return [superapplication:applicationdidFinishLaunchingWithOptions:launchOptions];
}
3.添加函数
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
/// Required - 注册 DeviceToken
[JPUSHServiceregisterDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
//Optional
NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
}
//处理收到的消息推送
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
// Required, iOS 7 Support
[JPUSHServicehandleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
}
//处理收到的消息推送
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
// Required,For systems with less than or equal to iOS6
[JPUSHServicehandleRemoteNotification:userInfo];
}
4.XCode8配置
- IONIC项目JPUSH消息推送IOS集成
- ionic应用集成极光推送插件jpush
- Unity集成JPush本地消息推送问题
- React Native Android JPush消息推送集成
- jpush app 消息推送项目 实例
- Ionic——ionic集成JPush后JPush更换项目手动修改(Android)
- 集成JPush推送
- JPush推送服务集成
- JPush 服务器消息推送
- ionic集成极光推送插件-iOS
- iOS第三方集成之jpush极光推送
- php使用JPush极光推送ios android通知消息
- iOS JPush极光推送
- Android Studio 集成JPUSH推送
- 极光推送(JPush)集成
- JPush 推送消息给 Android
- Ionic 集成极光推送
- Ionic集成极光推送
- 规范化和其他基本设计问题
- Android设计模式的学习——序言
- Linux性能优化和监控系列(二)分析CPU性能
- 自定义Collection View布局
- ZooKeeper系列之六:ZooKeeper四字命令
- IONIC项目JPUSH消息推送IOS集成
- python之from...import...和import
- 优化小计,304和202
- "Host 'USER-XXXX' is not allowed to connect to this MySQL server"
- 仿知乎日报第十二篇:为ArticleActivity加载布局
- Eclipse、IntelliJ IDEA常用的快捷键
- Revit开发在链接模型中使用ISelectionFilter
- LayoutAnimation与LayoutTransition
- 编程细节之 session命名 和 dispartcher与redirect选择