Unity调用WebService的方法,支持IL2CPP
2016-12-27 14:39
399 查看
关于这个话题,网上也是有不少了,不过只从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代码
正题开始
使用 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代码
相关文章推荐
- 通用 WebService 的调用方法 SOAP3.0支持需要
- 几种调用WebService的方法
- [JWF]JWF中调用WebService方法
- [导入]ASP.NET 2.0 AJAX中Webservice调用方法示例
- 异步调用WEBSERVICE的方法
- 调用部署在SSL下的WebService的方法
- 几种调用WebService的方法
- ASP.NET 2.0 AJAX中Webservice调用方法示例
- ASP.NET 2.0 AJAX中Webservice调用方法示例
- ASP.NET 2.0 AJAX中Webservice调用方法示例
- ASP.NET2.0下使用AJAX调用Webservice的方法
- javascript 调用 WebService的方法
- javascript 调用 WebService 的方法
- 通过测试调用webservice方法..
- ASP.NET 2.0 AJAX中Webservice调用方法示例
- [转]几种调用WebService的方法
- WebService的几种调用方法
- Atlas笔记1:介绍和调用WebService的方法
- 几种调用WebService的方法
- 几种调用WebService的方法