JPush's officially supported Unity3d plugin (Android & iOS). 极光推送官方支持的 Unity3d 插件(Android & iOS)。
Clone or download
Latest commit 048afcd Jul 25, 2018
Permalink
Failed to load latest commit information.
Doc Update DOC Jul 25, 2018
Examples update examples Apr 4, 2018
Plugins Update Android SDK to v3.1.5 Jul 25, 2018
.gitignore Add Android Plugin project Jan 30, 2018
JPushUnityPlugin_v3.2.6.unitypackage Release v3.2.6 Jul 25, 2018
README.md update docs Mar 27, 2018

README.md

JPush Unity Plugin

release platforms

这是极光官方支持的 JPush Unity 插件(Android & iOS)。

集成

运行插件目录下的 JPushUnityPlugin_vX.X.X.unitypackage

Android

  1. 替换 AndroidManifest.xml 里的包名。
  2. 将 AndroidManifest.xml 中的 JPUSH_APPKEY 值替换成极光控制台应用详情中的 AppKey 值。
  3. 配置项目里的包名:在 Unity 中选择 File---Build Settings---Player Settings,将 Identification 选项下的 Bundle Identifier 设置为应用的包名。

iOS

  1. 生成 iOS 工程,并打开该工程。

  2. 添加必要的框架:

    • CoreFoundation.framework

    • CFNetwork.framework

    • SystemConfiguration.framework

    • CoreTelephony.framework

    • CoreGraphics.framework

    • Foundation.framework

    • UIKit.framework

    • Security.framework

    • libz.tbd // Xcode7 之前为 libz.dylib 之后为 libz.tbd。

    • AdSupport.framework // 如需使用广告标识符 IDFA 则添加该库,否则不添加。

    • libresolv.tbd (JPush 2.2.0及以上版本需要, Xcode7以下版本是libresolv.dylib)

    • UserNotifications.framework (Xcode8及以上)

  3. 在 UnityAppController.mm 中添加头文件 JPUSHService.h

    #import "JPUSHService.h"
    #import "JPushEventCache.h"
    #import <UserNotifications/UserNotifications.h>
    
    // 如需使用广告标识符 IDFA 则添加该头文件,否则不添加。
    #import <AdSupport/AdSupport.h>
    
    @interface UnityAppController ()
    @end
  4. 在 UnityAppController.mm 的下列方法中添加以下代码:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
      [[JPushEventCache sharedInstance] handFinishLaunchOption:launchOptions];
      /*
        不使用 IDFA 启动 SDK。
        参数说明:
            appKey: 极光官网控制台应用标识。
            channel: 频道,暂无可填任意。
            apsForProduction: YES: 发布环境;NO: 开发环境。
      */
      [JPUSHService setupWithOption:launchOptions appKey:@"abcacdf406411fa656ee11c3" channel:@"" apsForProduction:NO];
    
      /*
        使用 IDFA 启动 SDK(不能与上述方法同时使用)。
        参数说明:
            appKey: 极光官网控制台应用标识。
            channel: 频道,暂无可填任意。
            apsForProduction: YES: 发布环境;NO: 开发环境。
            advertisingIdentifier: IDFA广告标识符。根据自身情况选择是否带有 IDFA 的启动方法,并注释另外一个启动方法。
      */
    //  NSString *advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    //  [JPUSHService setupWithOption:launchOptions appKey:@"替换成你自己的 Appkey" channel:@"" apsForProduction:NO SadvertisingIdentifier:advertisingId];
    
      return YES;
    }
    
    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
      // Required.
      [JPUSHService registerDeviceToken:deviceToken];
    }
    
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
      // Required.
      [[JPushEventCache sharedInstance] sendEvent:userInfo withKey:@"JPushPluginReceiveNotification"];
      [JPUSHService handleRemoteNotification:userInfo];
    }
    
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler {
      [[JPushEventCache sharedInstance] sendEvent:userInfo withKey:@"JPushPluginReceiveNotification"];
    }

API 说明

Android 与 iOS 通用 API

Android

Android API

./Plugins/Android/jpush-unity-plugin 为插件的 Android 项目,可以使用 Android Studio 打开并进行修改(比如,targetSdkVersion 或者 minSdkVersion),再 build 为 .aar 替换已有的 jpush.aar。

iOS

iOS API

更多