ios 接入sdk注意事項


                                                             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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM