quick cocos2dx 遊戲引擎lua調用oc代碼實現本地推送,cocos2dxlua
我在部落格標題為“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檔案中添加方法如下:
1 +(void) sendNotificationByLua:(NSDictionary*) dic 2 { 3 NSString* firedate = [dic objectForKey:@"firedate"];//擷取從lua中傳入的相關參數 4 NSString* key = [dic objectForKey:@"key"]; 5 NSString* message = [dic objectForKey:@"message"]; 6 NotificationHelper* instance = [NotificationHelper shareInstance]; 7 [instance addNotifiction:firedate keyA:key messageA:message]; 8 } 9 +(void) removeNotificationByLua:(NSDictionary*) dic10 {11 NSString* key = [dic objectForKey:@"key"];12 [[NotificationHelper shareInstance] removeLocalNotificationByKey:key];13 }
主要實現了發送通知和刪除通知的功能,至於還有別的需求可以根據實際項目做不同處理。
在lua項目中就可以通過如下語句來調用上面申明的相關方法了:
1 local params = {2 firedate = "18:20:00",3 key = "fixedNoti",4 message = "固定點通知from lua"6 }7 luaoc.callStaticMethod("NotificationHelper", "sendNotificationByLua", params)8 end
介紹完畢!現在只是實現了oc的本地推送,如果需要做remote遠程推送該如何?,希望有熱心的網友能給點建議和思路。據我瞭解android版本可以通過JPush來實現遠程推送。
如果需要在遊戲項目中,比如排名變化,使用者被別人攻擊了等需要推送給使用者增加我們遊戲的曝光率就需要遠程推送了。如果有做過此類功能的網友,望給個解決方案,謝謝!