1. 程式人生 > >cocos2d-x Lua與OC互相呼叫

cocos2d-x Lua與OC互相呼叫

1. Lua 呼叫OC

先看例子:

hello.lua:

 -- 點選回撥函式
    local function notifymenuCallbackTest()
    local luaoc = require('luaoc')
    local ok, ret = luaoc.callStaticMethod("RemoteRequestRouter", "notifyWatch", {params1 = "NOTIFICATION_TO_HOME"})
    end

RemoteRequestRouter.m

#pragma mark - 正確的通知WatchKit Extension的函式。
+ (void
)notifyWatch:(NSDictionary *)dict { NSLog(@"IOS app call notifyWatch to notify Apple Watch."); NSString *str = [dict objectForKey:@"params1"]; //(CFStringRef)str CFSTR("") CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (__bridge CFStringRef)str, (__bridge
const void *)(self), nil, TRUE); }

這樣就完成了Lua呼叫靜態類成員函式。

2. OC呼叫Lua

// functionId 是 Lua function 的引用 ID,參考 LuaJavaBridge 文章中的描述

// 1. 將引用 ID 對應的 Lua function 放入 Lua stack
CCLuaObjcBridge::pushLuaFunctionById(functionId);

// 2. 將需要傳遞給 Lua function 的引數放入 Lua stack
CCLuaValueDict item;
item["title
"] = CCLuaValue::stringValue("hello"); item["coins"] = CCLuaValue::intValue(1000); item["success"] = CCLuaValue::booleanValue(TRUE); CCLuaObjcBridge::getStack()->pushCCLuaValueDict(item); // 3. 執行 Lua function CCLuaObjcBridge::getStack()->executeFunction(1); // 4. 釋放引用 ID CCLuaObjcBridge::releaseLuaFunctionById(callbackId);

相關推薦

cocos2d-x LuaOC互相呼叫

1. Lua 呼叫OC 先看例子: hello.lua: -- 點選回撥函式 local function notifymenuCallbackTest() local luaoc = require('luaoc') local ok, ret = luaoc.ca

iOS下CordovaOC互相呼叫

2.設定網頁控制器,新增網頁 首先將 ViewController 的父類改為 CDVViewController。如下圖所示: 這裡分兩種情況,載入本地HTML 和遠端HTML 地址。 ** 載入本地HTML ** 載入本地HTML,為了方便起見,首先

iOS下JSOC互相呼叫(三)--MessageHandler

使用WKWebView的時候,如果想要實現JS呼叫OC方法,除了攔截URL之外,還有一種簡單的方式。那就是利用WKWebView的新特性MessageHandler來實現JS呼叫原生方法。 MessageHandler 是什麼? WKWebView 初始

JSOC互相呼叫的一百種方法(包括WKWebView和UIWebView)

/** * 根據webView、navigationAction相關資訊決定這次跳轉是否可以繼續進行,這些資訊包含HTTP傳送請求,如頭部包含User-Agent,Accept,refer * 在傳送請求之前,決定是否跳轉的代理 * @param webView * @param naviga

Lua:模組、使用位操作BitOp、C API(LuaC互相呼叫

一、模組 1.1 概述 建立一個模組最簡單的方法是:         1. 建立一個table;         2. 並將所有需要匯出的函式放入其中;         3. 最後返回這個table。 1.2 程式碼 檔案:test.lua complex = {} f

iOS下JSOC互相呼叫(八)--Cordova詳解+實戰

扯兩句,可以跳過 由於專案中Cordova相關功能一直是同事在負責,所以也沒有仔細的去探究Cordova到底是怎麼使用的,又是如何實現JS 與 OC 的互動。所以我基本上是從零開始研究和學習Cordova的使用,從上篇在官網實現命令列建立工程,到工程執行起來,

iOS下JSOC互相呼叫(四)--JavaScriptCore

前面講完攔截URL的方式實現JS與OC互相呼叫,終於到JavaScriptCore了。它是從iOS7開始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封裝了一下,提供了簡單快捷的方式與JavaScript互動。 關於JavaScriptCore的使用有兩篇很好的文章:N

iOS下JSOC互相呼叫(六)-->WKWebView + WebViewJavascriptBridge

上一篇文章介紹了UIWebView 如何通過WebViewJavascriptBridge 來實現JS 與OC 的互相呼叫,這一篇來介紹一下WKWebView 又是如何通過WebViewJavascriptBridge 來實現JS 與OC 的互相呼叫的。WKWebView

iOS下JSOC互相呼叫(七)--Cordova 基礎

Cordova 簡介 在介紹Cordova之前,必須先提一下PhoneGap。PhoneGap 是Nitobi軟體公司2008年推出的一個框架,旨在彌補web 和iOS 之間的不足,使得web 和 iPhone SDK 之間的互動更容易。後來又加入了Android SDK 和BlackBerry SDK,再

cocos2d-x lua 面向物件 ===> 呼叫基類在派生類中已經被過載了的函式

基類: local Base = class("Base", function () return cc.Layer:create() end) function Base:ctor( ... ) end function Base:test(self, ...

【學習筆記】【Cocos2d-x Lua指令碼開發】如何使用Lua指令碼呼叫自定義類

步驟:自定義類——>使用tolua++編譯到LuaCoco2d.cpp——>Lua指令碼呼叫 具體的操作步驟如下: 步驟一:自定義類 建立自定義類 //DeepSeaHero.h #include "cocos2d.h" using namespace

iOS下JS原生OC互相呼叫(總結)

iOS開發免不了要與UIWebView打交道,然後就要涉及到JS與原生OC互動,今天總結一下JS與原生OC互動的兩種方式。 JS呼叫原生OC篇 方式一 第一種方式是用JS發起一個假的URL請求,然後利用UIWebView的代理方法攔截這次請求,然後

iOS下JS原生OC互相呼叫

iOS開發免不了要與UIWebView打交道,然後就要涉及到JS與原生OC互動,今天總結一下JS與原生OC互動的兩種方式。 JS呼叫原生OC篇 方式一 第一種方式是用JS發起一個假的URL請求,然後利用UIWebView的代理方法攔截這次請求,然後再做相應的處理。

iOS開發-JS原生OC互相呼叫之問題總結二

今天繼續給同學們講解JS和OC的互相呼叫,今天給大家還是講解WKWebView中的一些使用,和注意點,廢話不多說直接上程式碼: #pragma mark - WKWebView中的MessageHandler? WKWebView初始化時,有一個引數叫configur

Cocos2d-x Lua遊戲開發Mac環境搭建以及一點點感悟

感覺 慢慢 怎樣 tid lease 人生 第三方 什麽 增強 接觸Cocos2d-x 最近由於公司項目的需要,自己開始接觸Cocos,開始做一些簡單的輕量級的遊戲,以前沒有接觸過這一塊的東西,也是借助這個機會學習一下遊戲的開發,由於以前自己

Quick-Cocos2d-X Lua 操作TiledMap

com map edm 分享 圖片 uic tiled led post Quick-Cocos2d-X Lua 操作TiledMap

cocos2d-x-lua基礎系列教程六(lua-table增刪改查)

{} cat ng-click 位置 rip 腳本 ack content -c lua-table庫 1。插入 table.insert () --假設沒有設定位置。默認last位置 樣例: myTable = {

iOS UIWebView中JS和OC互相呼叫

最近做的專案中,是用html做的,我這邊直接用iOS原生的UIWebView進行載入顯示,在期間用到了js和OC的互相呼叫,這裡記錄下來      JS呼叫OC方法:         首先,什麼是JS呼叫O

Cocos2d x Lua示例專案HelloLua

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Cocos2d-x Lua 訪問plist屬性列表檔案

C++: //載入plist檔案 config = CCDictionary::createWithContentsOfFile(path); config->retain(); //訪問其中元素 CCArray *a