iOS - update

1.更新手动安装文档
2.fix 影响其他插件使用的 bug
This commit is contained in:
E.B 2016-04-20 09:59:04 +08:00
parent b02e3faef0
commit 404f19037e
3 changed files with 34 additions and 25 deletions

View File

@ -1,12 +1,12 @@
### iOS 手动安装 ### iOS 手动安装
下载 JPush PhoneGap 插件,并解压缩,标记插件目录为:`$JPUSH_PLUGIN_DIR` - 下载 JPush PhoneGap 插件,并解压缩,标记插件目录为:`$JPUSH_PLUGIN_DIR`
- 用 xcode 打开 iOS 工程 将 `$JPUSH_PLUGIN_DIR`/src/ios/Plugins/ 拖到 project 中
1. 用 xcode 打开 iOS 工程 将 `$JPUSH_PLUGIN_DIR`/src/ios/Plugins/ 拖到 project 中 - 将 `$JPUSH_PLUGIN_DIR`/src/ios/lib/ 拖到 project 中
2. 将 `$JPUSH_PLUGIN_DIR`/src/ios/lib/ 拖到 project 中
4. 添加以下框架,打开 xcode点击 project选择(Target -> Build Phases -> Link Binary With Libraries) - 添加以下框架,打开 xcode点击 project选择(Target -> Build Phases -> Link Binary With Libraries)
CFNetwork.framework CFNetwork.framework
CoreFoundation.framework CoreFoundation.framework
@ -17,16 +17,16 @@
UIKit.framework UIKit.framework
5. 在你的工程中创建一个新的 Property List 文件 - 在你的工程中创建一个新的 Property List 文件
并将其命名为 PushConfig.plist填入 Portal 为你的应用提供的 APP_KEY 等参数 并将其命名为 PushConfig.plist填入 Portal 为你的应用提供的 APP_KEY 等参数
10. 在 AppDelegate.m 中包含头文件 - 在 AppDelegate.m 中包含头文件
#import "JPUSHService.h" #import "JPUSHService.h"
#import "JPushPlugin.h" #import "JPushPlugin.h"
6. 调用代码,监听系统事件,相应地调用 JPush SDK 提供的 API 来实现功能 - 在 AppDelegate.m 中的下列方法中添加代码,如果方法不存在则增加相应方法与内容
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
//原内容保持不变 //原内容保持不变
@ -43,11 +43,10 @@
//原内容保持不变 //原内容保持不变
// Required add // Required add
[JPUSHService handleRemoteNotification:userInfo]; [JPUSHService handleRemoteNotification:userInfo];
[[NSNotificationCenter defaultCenter] postNotificationName:kJPushPluginReceiveNotification [[NSNotificationCenter defaultCenter] postNotificationName:kJPushPluginReceiveNotification object:userInfo];
object:userInfo];
} }
7. 修改 phonegap config.xml 文件用来包含 Plugin/ 内的插件 - 修改 phonegap config.xml 文件用来包含 Plugin/ 内的插件
<feature name="JPushPlugin"> <feature name="JPushPlugin">
@ -56,7 +55,8 @@
</feature> </feature>
8. 复制 `$JPUSH_PLUGIN_DIR`/www/PushNotification.js 到工程的 www 目录下面 - 复制 `$JPUSH_PLUGIN_DIR`/www/JPushPlugin.js 到工程的 www 目录下面
9. 在需要使用插件处加入
- 在需要使用插件处加入
<script type="text/javascript" src="JPushPlugin.js"></script> <script type="text/javascript" src="JPushPlugin.js"></script>

View File

@ -65,12 +65,12 @@ JPush-PhoneGap-Plugin 支持 iOS, Android 的推送插件。
### Android 手动安装 ### Android 手动安装
[Android 手动安装文档地址](document/Android_handle_install.md) [Android 手动安装文档地址](API/Android_handle_install.md)
### iOS 手动安装 ### iOS 手动安装
[IOS手动安装文档地址](document/iOS_handle_install.md) [IOS 手动安装文档地址](API/iOS_install.md)
###示例 ###示例

View File

@ -9,20 +9,29 @@
#import "AppDelegate+JPush.h" #import "AppDelegate+JPush.h"
#import "JPushPlugin.h" #import "JPushPlugin.h"
#import "JPUSHService.h" #import "JPUSHService.h"
#import <objc/runtime.h>
@implementation AppDelegate (JPush) @implementation AppDelegate (JPush)
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ +(void)load{
[JPushPlugin setLaunchOptions:launchOptions];
//cordova didFinishLaunchingWithOptions Method origin;
CGRect screenBounds = [[UIScreen mainScreen] bounds]; Method swizzle;
self.window = [[UIWindow alloc] initWithFrame:screenBounds];
self.viewController = [[CDVViewController alloc] init]; origin=class_getInstanceMethod([self class],@selector(init));
self.window.rootViewController = self.viewController; swizzle=class_getInstanceMethod([self class], @selector(init_plus));
self.window.autoresizesSubviews = YES; method_exchangeImplementations(origin, swizzle);
[self.window makeKeyAndVisible]; }
return YES;
-(instancetype)init_plus{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidLaunch:) name:@"UIApplicationDidFinishLaunchingNotification" object:nil];
return [self init_plus];
}
-(void)applicationDidLaunch:(NSNotification *)notification{
if (notification) {
[JPushPlugin setLaunchOptions:notification.userInfo];
}
} }
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {