您的位置:首页 > 移动开发 > Cocos引擎

cocos2d lua调用OC代码

2016-12-06 16:40 519 查看
1 . 新建LuaCallOC.h 和 LuaCallOC.mm

luaCallOC.h

@interface LuaCallOC : NSObject {

}

// 跳转到appstore
+ (char) gotoAppstore:(NSDictionary *)dict;

// 是否WIFI
+ (char) IsEnableWIFI;

// 获取网络状态
+ (int) getNetStatus;

@end


luaCallOC.mm

#import "LuaCallOC.h"
#import "Reachability.h"
#include <arpa/inet.h>

@implementation LuaCallOC

// 跳转到appstore
+ (char) gotoAppstore:(NSDictionary *)dict {
NSString *str = [dict objectForKey:@"address"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString : str]];
return YES;
}

// 是否WIFI
+ (char) IsEnableWIFI {
struct sockaddr_in addr;
bzero(&addr, sizeof(addr));
addr.sin_len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(IN_LINKLOCALNETNUM);

BOOL ret =([[Reachability reachabilityWithAddress: (sockaddr*)&addr] currentReachabilityStatus] == ReachableViaWiFi);
return ret;
}

// 获取网络状态
+ (int) getNetStatus {
//可以使用多种方式初始化
Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com/"];
/*//判断当前的网络状态
switch ([reach currentReachabilityStatus]) {
case ReachableViaWWAN:
NSLog(@"正在使用移动数据网络");
break;
case ReachableViaWiFi:
NSLog(@"正在使用WiFi");
break;
default:
NSLog(@"无网络");
break;
}*/
return [reach currentReachabilityStatus];
}

@end


2 . 将LuaCallOC.h 和 LuaCallOC.mm添加到xcode

3 .lua调用OC

local ok, ret = luaoc.callStaticMethod("LuaCallOC", "gotoAppstore", {address = markConf[channelId].markAddress})

local ok, ret = luaoc.callStaticMethod("LuaCallOC", "IsEnableWIFI")

-- ok 为true代表调用成功, 此时ret为返回值
-- ok 为false代表调用失败, 此时ret为失败原因
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua调用oc