本文通过一个例子讲述javascript如何注册一个函数到中间件,中间件如何调用这个函数,传递相关的参数。
先创建头文件JSBaseTv.h声明一个c++的类,包含两个函数和一个变量:
#include <JavaScriptCore/JavaScript.h>
using namespace std;
namespace Sample
{
class JSBaseTv
{
public:
static JSValeRef registerScanCallback(JSContextRef ctx, JSObjectRef function,JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],JSValueRef *exception);
static JSValueRef triggerScanCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef *exception);
private:
statice JSObjectRef channelScanCallback;
}
}
再创建JSBaseTv.cpp, registerScanCallback用以javascript来注册callback函数。channelScanCallback保存回调函数,triggerScanCallback用以触发回调函数。
#include <JavaScriptCore/JavaScript.h>
#include "JSBaseTv.h"
using