加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Unity调用WebService的方法,支持IL2CPP

发布时间:2020-12-16 21:56:49 所属栏目:安全 来源:网络整理
导读:关于这个话题,网上也是有不少了,不过只从iOS需要IL2CPP后,那些方法基本上都没用了,因为C#原本的办法是通过生成代理类来进行访问,那个代理类都是使用C#反射,自然没法用,如果知道原理的话其实都很容易自己去实现,不过哪有那么多时间去学习那个玩意的原


关于这个话题,网上也是有不少了,不过只从iOS需要IL2CPP后,那些方法基本上都没用了,因为C#原本的办法是通过生成代理类来进行访问,那个代理类都是使用C#反射,自然没法用,如果知道原理的话其实都很容易自己去实现,不过哪有那么多时间去学习那个玩意的原理,省下来的时间购泡几个妹纸了


正题开始

使用 http://easywsdl.com/WsdlGenerator 这个玩意就可以很容易生成各个客户端需要的代码,目前来说我们只需要安卓和iOS就够了。需要 翻-墙 才能进去,我是用的Goggle账号登录的,总之我生成的是iOS的,生成的是OC语言,其实OC很容易和Unity交互


static char resultStr[1024];


extern "C" {

? ? const char* LoginWeb(const char* s_user,

?? ? ? ? ? ? ? ? ? ? ? ? const char* s_pw);

}


const char* LoginWeb(const char* s_user,

? ? ? ? ? ? ? const char* s_pw){


? ? memset(resultStr,0,sizeof(resultStr));

? ? NSString* user=[NSString stringWithUTF8String:s_user];

? ? NSString* pw=[NSString stringWithUTF8String:s_pw];



? ? NSString* url=@"http://你的地址WS/WSAccount.asmx";


?? ?

? ? NSError* error=nil;

? ? MHKWSAccountSoap12* service = [[MHKWSAccountSoap12 alloc] initWithUrl: url ];

? ? NSString* res = [service Login:user userPass:pw? __error: &error];

? ? NSLog(@"LoginWeb user:%@",user);

? ? if(error!=nil)

? ? {

? ? ? ? //error occured

? ? ? ? NSLog(@"LoginWeb error:%@",error);

? ? }else{

? ? ? ? if(res!=nil){

? ? ? ? ? ? const char* s = [res UTF8String];

? ? ? ? ? ? strcpy(resultStr,s);

? ? ? ? }

? ? }

? ? return resultStr;

}


Unity里使用

? ? ? ??[DllImport(“__Internal,?CharSet?=?CharSet.Auto)]
????????public?static?extern?IntPtr?LoginWeb(string?s_user,?string?s_pw);

具体的函数是根据你的服务来生成,生成的包里面也有文档,很方便,安卓也是同理,而且生成的包里就有jar包,可以直接使用


以上代码可能会有内存泄漏,因为我不是很懂OC代码

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读