封裝接口分三步:
1场躯、在PluginAPI的構造函數(shù)中調用注冊方法函數(shù)registerMethod("xxx", make_method(this, &PluginAPI::xxx));
2、在類中聲明xxx接口;
3、在PluginAPI.cpp中定義xxx函數(shù)的實現(xiàn)。
設置回調分三步:
1、在PluginAPI的構造函數(shù)中調用注冊事件宏FB_JSAPI_EVENT(事件,參數(shù)個數(shù),(各參數(shù)類型));
2瓣颅、在需要觸發(fā)事件的位置調用fire_事件(各個參數(shù));
3、在js層注冊事件并且實現(xiàn)事件的處理流程譬正,注冊事件老版ie使用attachEvent("on"+name, func)宫补,新點的ie使用addEventListener(name, func, false),然后記得將事件和處理流程綁定addEvent(this.plugin, 'UI_process', processEvent)曾我。
為插件添加Property屬性分兩步:
1粉怕、在PluginAPI的構造函數(shù)中調用;
registerProperty("xxx",
make_property(this,
&PluginAPI::get_xxx, //設置可讀屬性
&PluginAPI::set_xxx)); //設置刻寫屬性
2抒巢、在js層直接讀取或修改xxx屬性贫贝。
如何獲取DOM的屬性,回調DOM的方法
FB::DOM::WindowPtr window = m_host->getDOMWindow();
FB::JSObjectPtr obj;
if (window && window->getJSObject()->HasProperty("window")) {
obj = window->getProperty<FB::JSObjectPtr>("window");
xxx = window->getNode("元素id")->getProperty<std::string>("要獲取的屬性");
obj->Invoke("alert", FB::variant_list_of("xxx"));
}