您的位置:首页 > 移动开发 > IOS开发

ios 接入sdk注意事项

2016-04-19 10:02 183 查看
ios 接入sdk注意事项

unity如何一键添加第三方framework,修改xcode工程代码在ios一键打包已经提到。一般unity主要是用到两个方面:sdk和消息推送,基本都是利用unity与ios进行交互,但是unity与ios如何进行交互?

1.object-C应用程序基本构成

可参考ios 8 开发指南,前面5章以及31章的一些消息推送的(csdn下载中文版pdf),主要是了解Object-c基本的一些类型,最重要的是

UIApplication:应用程序

UIApplicationDelegate:代理类,处理UIApplication实例等等

object-c: main函数调用ApplicationMain,初始化UIApplication. UnityApplitionController 继承UIApplication,基本上第三方所需要修改的应用程序代码基本上都在这里。例如applicationDidFinishLaunching(点击icon程序载入完成调用)等等,可在开发指南了解这几个函数的具体作用,sdk接入我们只需要了解这几个函数就可以了。



2、unity与ios如何交互

1) UnitySendMessage("","",""),与我在打包里面说到的unity与android、unity与ios之间的交互,这种发消息只能发一个string过去,极其不方便。

2)委托回调,详细代码参考如下

Unity定义object-c回调函数,基本是全局静态函数,在程序中只能定义一次

delegate void VOID_NONE_ARGS();
delegate void VOID_1ST_ARGS(string text);
delegate void VOID_2ST_ARGS(string text1,string text2);

void Init()
{
SDKInit(InitComplete);

)

[AOT.MonoPInvokeCallBack(typeof(responseCallBackNoArgs))]
private static void InitComplete()
{

}
//函数定义
[DllImport(__Internal)]
public static extern void SDKInit(VOID_NONE_ARGS sdkCallBack);

//没有定义回调函数,就需要在object-c使用UnitySendMessage.

[DllImport(__Internal)]
public static extern void SDKInitSendMessage();


Objective-c回调

#import<Foundation/Foundation.h>
#ifdef _cplusplus
extern "C"
{
#endif
typedef void (*VOID_NONE_ARGS)();
typedef void (*VOID_1STR_ARGS)(const char*);
typedef void (*VOID_2STR_ARGS)(const char*,const char *);
typedef void (*VOID_1BOOL_ARGS)(bool);
#ifdef _cplusplus
}
#endif

@interface SDKKit : NSObject
{

}
+(SDKKit  *)Instance;
@property VOID_1STR_ARGS SDKInit;


  

#import "SDKKit.h"
@implementation SDKKit

+(SDKKit *) Instance
{
static SDKKit * instance = nil;
if(!instance)
instance = [[SDKKit alloc] init];
return instance;
}
#ifdef _cplusplus
extern "C"
{
#endif

void SDKInit(VOID_1STR_ARGS callBack)
{
[SDKKit Instance].SDKInit = callBack;
//一般sdk都会提供sdk api接口给你 可以在此调用第三方SDK,
//一般会提供一个第三方SDK delegate给你(也就是处理SDK回调成功的方法)
//sdk调用成功后sdk delegate再调用[SDKKit Instance].SDKInit 即可回调成功
}
#ifdef _cplusplus
}
#endif


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: