您所在的位置:小祥子 » 编程 » IOS » 正文

quick cocos2dx 游戏引擎lua调用oc代码实现本地推送

时间:2015-05-23 编辑:老桂 来源:本站整理

我在博客标题为“ios如何实现本地推送,兼容ios8“http://www.cnblogs.com/laoguigame/p/4522474.html的博文中介绍了通过oc代码实现本地推送的方法。
现在介绍在lua中调用咱们之前写的oc方法接口来实现在lua层实现推送的功能,主要基于quick cocos2dx V3.3版本的引擎来实现。
在quick中的luaoc.lua文件中实现了luaoc.callStaticMethod(className, methodName, args)接口,可以看出只能调用oc中的静态方法。所以我在NotificationHelper.m文件中添加方法如下:

 +(void) sendNotificationByLua:(NSDictionary*) dic
 {
     NSString* firedate = [dic objectForKey:@"firedate"];//获取从lua中传入的相关参数
     NSString* key = [dic objectForKey:@"key"];
     NSString* message = [dic objectForKey:@"message"];
     NotificationHelper* instance = [NotificationHelper shareInstance];
     [instance addNotifiction:firedate keyA:key messageA:message];
 }
 +(void) removeNotificationByLua:(NSDictionary*) dic
 {
     NSString* key = [dic objectForKey:@"key"];
     [[NotificationHelper shareInstance] removeLocalNotificationByKey:key];
 }

主要实现了发送通知和删除通知的功能,至于还有别的需求可以根据实际项目做不同处理。
在lua项目中就可以通过如下语句来调用上面申明的相关方法了:

 local params = {
             firedate = "18:20:00",
             key = "fixedNoti",
             message = 
         }
         luaoc.callStaticMethod("NotificationHelper", "sendNotificationByLua", params)
     end

介绍完毕!现在只是实现了oc的本地推送,如果需要做remote远程推送该如何实现,希望有热心的网友能给点建议和思路。据我了解android版本可以通过JPush来实现远程推送。
如果需要在游戏项目中,比如排名变化,用户被别人攻击了等需要推送给用户增加我们游戏的曝光率就需要远程推送了。如果有做过此类功能的网友,望给个解决方案,谢谢!

关键词:游戏 调用 代码