Unity iOS接SDK,定制UnityAppController
发布日期:2021-06-30 19:35:16
浏览次数:3
分类:技术文章
本文共 2402 字,大约阅读时间需要 8 分钟。
Unity3d
项目开发,在iOS
平台接SDK
的时候,就需要实现自己的 AppController
来维护 SDK
的生命周期。Unity3d
提供了一套插件机制,可以很方便地在项目中使用自己的CustomAppController
继承并重写默认的UnityAppController
的方法。
Assets/Plugins/iOS/CustomAppController.mm
文件名必须是 xxxxAppController.mm
,xxxx
前缀可自选,但不能省略,如CustomAppController.mm
;
Build
项目的时候,会被移动到错误的目录中去。 // CustomAppController.mm#import "UnityAppController.h"@interface CustomAppController : UnityAppController@endIMPL_APP_CONTROLLER_SUBCLASS (CustomAppController)@implementation CustomAppController- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{ [super application:application didFinishLaunchingWithOptions:launchOptions]; return YES;}@end
注意,上面的CustomAppController.mm
中有一个宏IMPL_APP_CONTROLLER_SUBCLASS
,Unity 就是通过 IMPL_APP_CONTROLLER_SUBCLASS
知道要使用我们定制的 CustomAppController
而不是使用默认的UnityAppController
。
极光推送SDK为例(SDK官方文档:),定制CustomAppController
// CustomAppController.mm#import "JPUSHService.h"#import "JPushEventCache.h"#import// 如需使用广告标识符 IDFA 则添加该头文件,否则不添加。#import #import "UnityAppController.h"@interface CustomAppController : UnityAppController@endIMPL_APP_CONTROLLER_SUBCLASS (CustomAppController)@implementation CustomAppController- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[JPushEventCache sharedInstance] handFinishLaunchOption:launchOptions]; /* 不使用 IDFA 启动 SDK。 参数说明: appKey: 极光官网控制台应用标识。 channel: 频道,暂无可填任意。 apsForProduction: YES: 发布环境;NO: 开发环境。 */ [JPUSHService setupWithOption:launchOptions appKey:@"b8213ec93d03ff11a560f516" channel:@"" apsForProduction:NO]; 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"];}@end
转载地址:https://linxinfa.blog.csdn.net/article/details/107351914 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月26日 16时43分23秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
强化学习(三) —— Policy Gradient 策略梯度
2019-04-30
docker安装oracle(win10)
2019-04-30
Cloudera Quickstart & HUE
2019-04-30
HUE
2019-04-30
CDH
2019-04-30
行为树 BT
2019-04-30
Cassandra & CQL
2019-04-30
Oracle数据库
2019-04-30
Oracle数据库命令
2019-04-30
plsql
2019-04-30
有限状态机FSM
2019-04-30
Win10 Docker
2019-04-30
Python绘制动画并保存为gif/mp4 (matplotlib)
2019-04-30
PRM概率路线图
2019-04-30
ROS(六)——订阅者Subscriber的编程实现(C++ & Python)
2019-04-30
ROS(七)——话题消息的定义与使用
2019-04-30
yolov3入门实战
2019-04-30
B树 & B+树
2019-04-30
Node-Red(一)——简介与安装
2019-04-30
representation learning 表示学习/表征学习
2019-04-30