生活随笔
收集整理的這篇文章主要介紹了
Miniblink 入门
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
miniblink官網:入門之前強烈建議將Miniblink介紹仔細看一遍。
MB內核組件標準版接口文檔:這里列舉了所有的api以及簡單的說明,但是本人建議還是看wke.h更方便,里面都是宏實現的,直接搜相關函數即可。
mb demo下載和參考:里面有說明文檔,初步可以看看文檔和運行了解一下。
miniblink概括
miniblink是單進程程序與cef多進程相比簡單很多。mini 包很小,方便集成為了使用devTool,應該將mb demo目錄下的front_end拷貝到工程一份為了使用插件,應該將mb demo目錄下的plugins拷貝到工程一份
js 調用C++函數并返回值
遵循WKE_CALL_TYPE 調用方式遵循函數原型 jsValue WKE_CALL_TYPE xxxFun(jsExecState es, void* param)
//函數標準必須遵守WKE_CALL_TYPE 調用方式
jsValue WKE_CALL_TYPE
OnMsg(jsExecState es
, void
* param
)
{//獲取參數個數jsArgCount
if (0 == jsArgCount(es
))return jsUndefined();//獲取約定的參數,例如獲取第一個參數,并假設參數為string,如果不是string則返回jsValue arg0
= jsArg(es
, 0);//jsType type
= jsArgType(es
, 0);//if (JSTYPE_STRING !
= type
) return jsUndefined();if (!
jsIsString(arg0
))return jsUndefined();path
= jsToTempString(es
, arg0
);//同理獲取更多參數
//返回約定返回值
or Undefined
//return jsStringW(L
"OK");return jsInt();
}
js綁定C++函數
#param1:js中調用的函數名稱
#param2:c++中實現的的函數
#param3:自定義參數,對應OnMsg中的void* param
#param4:約定onMsg中需要輸入的參數個數,可隨便定義,但是在調用過程應該解析參數個數和類型#綁定之后所有webview的js都可以調用eMsg,包括新打開的webview
#注意第三個參數
void* param,如果默認和當前創建的webview綁定
#如果當前webview不調用wkeJsBindFunction,則繼承上一次的wkeJsBindFunction調用
wkeJsBindFunction("eMsg", &onMsg
, nullptr, 5);
js中調用綁定函數
<button onclick
="eMsg('add')">js Call C
++ function
</button
>
c++ 調用js函數并獲取返回值
js中聲明函數,eg:js_add
function
js_add(v1
,v2
){return v1
+ v2
;}
C++通過jsCallGlobal調用js_add
int callJSAdd(wkeWebView webview
)
{jsExecState es
= wkeGlobalExec(webview
);jsValue f
= jsGetGlobal(es
, "js_add");if (jsIsFunction(f
)){return -1;}jsValue jVal
[2];jVal
[0] = jsInt(1);jVal
[1] = jsInt(2);jsValue callRet
= jsCallGlobal(es
, f
, jVal
, 2);return jsToInt(es
, callRet
);
}
顯示DevTool
#param1:wkeWebView 實例
#param2:調試器的路徑,即front_end/inspector.htmlwkeShowDevtools(m_wkWebView
, szPath
, 0, 0);
void CMbWebView::ShowDevTool()
{wchar_t szPath
[MAX_PATH
] = _T("");GetModuleFileNameW(NULL, szPath
, MAX_PATH
);PathRemoveFileSpecW(szPath
);PathAppendW(szPath
, L
"front_end");PathAppendW(szPath
, L
"inspector.html");if (_waccess(szPath
, 00) != 0){wchar_t szBuf
[1024] = L
"";_snwprintf_s<1024>(szBuf
, 1024, L
"調試工具[%s]不存在", szPath
);MessageBoxW(GetHwnd(), szBuf
, L
"錯誤提示", MB_OK
);}else{wkeShowDevtools(m_wkWebView
, szPath
, 0, 0);}
}
其他的更多功能直接參考官方的mb demo。
總結
以上是生活随笔為你收集整理的Miniblink 入门的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。