下你所需,载你所想!
汇集开发技术源码资料

MinilBlink支持库源码

: MB KB :1 :2020-01-27 10:49:34

部分简介

API

[1] unsigned int wkeVersion();

获取目前api版本号

[2] const utf8* wkeVersionString();

获取版本字符串

[3] void wkeSetWkeDllPath(const wchar_t* dllPath)

设置miniblink的全路径+文件名

参数名
说明
dllPath
dll的全路径,注意是全路径

[4] void wkeGC(wkeWebView webView, long delayMs);

延迟让miniblink垃圾回收

[5] void wkeSetFileSystem(WKE_FILE_OPEN pfnOpen, WKE_FILE_CLOSE pfnClose, WKE_FILE_SIZE pfnSize, WKE_FILE_READ pfnRead, WKE_FILE_SEEK pfnSeek)

wke遗留的接口,设置文件相关的hook函数。可以作为拦截对文件的操作。现在已被更先进的函数取代

[6] bool wkeIsLoaded(wkeWebView webView); (已作废)

获取webView是否处于加载状态,还是加载完成。

[7] bool wkeIsLoadingSucceeded(wkeWebView webView) (已作废)

判断webview是否加载成功

[8] bool wkeIsLoadFailed(wkeWebView webView) (已作废)

判断webview是否加载失败

[9] bool wkeIsLoadComplete(wkeWebView webView) (已作废)

判断webview是否加载完成

wkeIsLoadComdivlete等效于wkeIsLoadFailed、wkeIsLoadingSucceeded其中任何一个返回true

[10] bool wkeIsDocumentReady(wkeWebView webView)

DOM文档结构是否加载完成。和上述几个接口不同,上述几个接口是网络相关的判断。

[11] void wkeStopLoading(wkeWebView webView)

停止加载页面

[12] bool wkeReload(wkeWebView webView)

重新加载页面

[13] const utf8* wkeGetTitle(wkeWebView webView)

获取页面标题

[14] const wchar_t* wkeGetTitleW(wkeWebView webView)

获取页面标题的宽字节版本

[15] void wkeResize(wkeWebView webView, int w, int h)

重新设置页面的宽高。如果webView是带窗口模式的,会设置真窗口的宽高。

[16] int wkeGetWidth(wkeWebView webView)

获取页面宽度

[17] int wkeGetHeight(wkeWebView webView)

获取页面高度

[18] int wkeGetContentWidth(wkeWebView webView)

获取网页排版出来的宽度

[19] int wkeGetContentHeight(wkeWebView webView)

获取网页排版出来的高度

[20] void wkeSetDirty(wkeWebView webView, bool dirty) (已作废)

设置页面为脏状态,在下一帧将强制重绘页面

[21] bool wkeIsDirty(wkeWebView webView) (已作废)

获取页面脏状态

[22] void wkeAddDirtyArea(wkeWebView webView, int x, int y, int w, int h) (已作废)

添加页面脏矩形

[23] void wkeLayoutIfNeeded(wkeWebView webView) (已作废)

强制让页面重新排版

[24] void wkePaint2(wkeWebView webView, void* bits, int bufWid, int bufHei, int xDst, int yDst, int w, int h, int xSrc, int ySrc, bool bCopyAlpha)

暂无接口描述信息

参数名
说明
bits
外部申请并传递给mb的buffer,大小是bufWid * bufHei * 4 字节
bufWid
bits的宽
bufHei
bits的高
xDst
绘制到bits的哪个坐标
yDst
绘制到bits的哪个坐标
w
mb需要取的画面的起始坐标
h
mb需要取的画面的起始坐标
xSrc
mb需要取的画面的起始坐标
ySrc
mb需要取的画面的起始坐标
bCopyAlpha
是否拷贝画面的透明度值
此函数一般给3d游戏使用。另外频繁使用此接口并拷贝像素有性能问题。最好用wkeGetViewDC再去拷贝dc。

[25] void wkePaint(wkeWebView webView, void* bits, int pitch)

获取页面的像素的简化版函数。

参数名
说明
bits
外部申请并传递给mb的buffer,大小是webview宽度 * 高度 * 4 字节。
pitch
填0即可。这个参数玩过directX的人应该懂

[26] void wkeRepaintIfNeeded(wkeWebView webView) (已作废)

强制重绘页面

[27] HDC wkeGetViewDC(wkeWebView webView)

获取webview的DC

[28] HWND wkeGetHostHWND(wkeWebView webView)

获取webveiw对应的窗口句柄。实现和wkeGetWindowHandle完全相同

[29] bool wkeCanGoBack(wkeWebView webView)

页面是否可以后退

[30] bool wkeGoBack(wkeWebView webView)

强制让页面后退

[31] bool wkeCanGoForward(wkeWebView webView)

暂无接口描述信息

[32] bool wkeGoForward(wkeWebView webView)

暂无接口描述信息

[33] void wkeEditorSelectAll(wkeWebView webView)

给webview发送全选命令

[34] void wkeEditorUnSelect(wkeWebView webView)

暂无接口描述信息

[35] void wkeEditorCopy(wkeWebView webView)

拷贝页面里被选中的字符串

[36] void wkeEditorCut(wkeWebView webView)

暂无接口描述信息

[37] void wkeEditorDelete(wkeWebView webView)

暂无接口描述信息

[38] void wkeEditorUndo(wkeWebView webView)

暂无接口描述信息

[39] void wkeEditorRedo(wkeWebView webView)

暂无接口描述信息

[40] const wchar_t * wkeGetCookieW(wkeWebView webView)

获取页面的cookie

[41] const utf8* wkeGetCookie(wkeWebView webView)

获取页面的cookie

[42] void wkeSetCookie(wkeWebView webView, const utf8* url, const utf8* cookie)

设置页面cookie。

cookie必须符合curl的cookie写法。一个例子是:PERSONALIZE=123;expires=Monday, 13-Jun-2022 03:04:55 GMT; domain=.fidelity.com; path=/; secure

[43] void wkeVisitAllCookie(void* params, wkeCookieVisitor visitor)

通过访问器visitor访问所有cookie。

参数名
说明
visitor
访问器

[44] void wkePerformCookieCommand(wkeWebView webView, wkeCookieCommand command)

通过设置mb内置的curl来操作cookie。

这个接口只是调用curl设置命令,并不会去修改js里的内容

[45] void wkeSetCookieEnabled(wkeWebView webView, bool enable)

开启或关闭cookie

这个接口只是影响blink,并不会设置curl。所以还是会生成curl的cookie文件

[46] bool wkeIsCookieEnabled(wkeWebView webView)

暂无接口描述信息

[47] void wkeSetCookieJarPath(wkeWebView webView, const WCHAR* path)

设置cookie的本地文件目录。默认是当前目录。cookies存在当前目录的“cookie.dat”里

[48] void wkeSetCookieJarFullPath(wkeWebView webView, const WCHAR* path)

设置cookie的全路径+文件名,如c:\mb\cookie.dat

[49] void wkeSetLocalStorageFullPath(wkeWebView webView, const WCHAR* path)

设置local storage的全路径。如“c:\mb\LocalStorage\”

这个接口只能接受目录。

[50] void wkeSetMediaVolume(wkeWebView webView, float volume)

设置音量,未实现

[51] float wkeGetMediaVolume(wkeWebView webView)

获取音量,未实现

[52] bool wkeFireMouseEvent(wkeWebView webView, unsigned int message, int x, int y, unsigned int flags)

向mb发送鼠标消息

参数名
说明
message
可取WM_MOUSELEAVE等Windows相关鼠标消息
x
x坐标
y
y坐标
flags
可取值有WKE_CONTROL、WKE_SHIFT、WKE_LBUTTON、WKE_MBUTTON、WKE_RBUTTON,可通过“或”操作并联

[53] bool wkeFireContextMenuEvent(wkeWebView webView, int x, int y, unsigned int flags)

向mb发送菜单消息(未实现)

[54] bool wkeFireMouseWheelEvent(wkeWebView webView, int x, int y, int delta, unsigned int flags)

向mb发送滚轮消息,用法和参数类似wkeFireMouseEvent。

[55] bool wkeFireKeyUpEvent(wkeWebView webView, unsigned int virtualKeyCode, unsigned int flags, bool systemKey)

向mb发送WM_KEYUP消息,

参数名
说明
virtualKeyCode
见https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
flags
可取值有WKE_REPEAT、WKE_EXTENDED,可通过“或”操作并联。
systemKey
暂时没用

[56] bool wkeFireKeyDownEvent(wkeWebView webView, unsigned int virtualKeyCode, unsigned int flags, bool systemKey)

暂无接口描述信息

参数名
说明
charCode
WM_CHAR消息的The character code of the key.见https://msdn.microsoft.com/en-us/library/windows/desktop/ms646276(v=vs.85).aspx

[57] bool wkeFireWindowsMessage(wkeWebView webView, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT* result)

向mb发送任意windows消息。不过目前mb主要用来处理光标相关。mb在无窗口模式下,要响应光标事件,需要通过本函数手动发送光标消息

[58] void wkeSetFocus(wkeWebView webView)

设置webview是焦点态。如果webveiw关联了窗口,窗口也会有焦点

[59] void wkeKillFocus(wkeWebView webView)

暂无接口描述信息

[60] wkeRect wkeGetCaretRect(wkeWebView webView)

获取编辑框的那个游标的位置

[61] jsValue wkeRunJS(wkeWebView webView, const utf8* script)

运行一段js。返回js的值jsValue。jsValue是个封装了内部v8各种类型的类,如果需要获取详细信息,有jsXXX相关接口可以调用。见下述。

[62] jsValue wkeRunJSW(wkeWebView webView, const wchar_t* script)

同上。注意,此函数以及wkeRunJS,执行的js,也就是script,是在一个闭包中

[63] jsExecState wkeGlobalExec(wkeWebView webView)

获取页面主frame的jsExecState。jsExecState是什么,见下述。

[64] void wkeSleep(wkeWebView webView)

暂未实现

[65] void wkeWake(wkeWebView webView)

暂无接口描述信息

[66] bool wkeIsAwake(wkeWebView webView)

暂未实现

[67] void wkeSetZoomFactor(wkeWebView webView, float factor)

设置页面缩放系数,默认是1

[68] float wkeGetZoomFactor(wkeWebView webView)

暂无接口描述信息

[69] void wkeSetEditable(wkeWebView webView, bool editable)

未实现

[70] void wkeOnTitleChanged(wkeWebView webView, wkeTitleChangedCallback callback, void* callbackParam)

设置标题变化的通知回调

[71] void wkeOnMouseOverUrlChanged(wkeWebView webView, wkeTitleChangedCallback callback, void* callbackParam)

鼠标划过的元素,如果是,则调用此回调,并发送a标签的url

[72] void wkeOnURLChanged(wkeWebView webView, wkeURLChangedCallback callback, void* callbackParam)

url改变回调

[73] void wkeOnURLChanged2(wkeWebView webView, wkeURLChangedCallback2 callback, void* callbackParam)

和上个接口不同的是,回调多了个参数

参数名
说明
callback
typedef void(*wkeURLChangedCallback2)(wkeWebView webView, void* param, wkeWebFrameHandle frameId, const wkeString url)
frameId
表示frame的id。有相关接口可以判断这个frameId是否是主frame

[75] void wkeOnPaintUpdated(wkeWebView webView, wkePaintUpdatedCallback callback, void* callbackParam)

页面有任何需要刷新的地方,将调用此回调

参数名
说明
callback
typedef void(*wkePaintUpdatedCallback)(wkeWebView webView, void* param, const HDC hdc, int x, int y, int cx, int cy)
x
表示刷新的区域矩形
y
表示刷新的区域矩形
cx
表示刷新的区域矩形
cy
表示刷新的区域矩形

[77] void wkeOnPaintBitUpdated(wkeWebView webView, wkePaintBitUpdatedCallback callback, void* callbackParam)

同上。不同的是回调过来的是填充好像素的buffer,而不是DC。方便嵌入到游戏中做离屏渲染

[78] void wkeOnAlertBox(wkeWebView webView, wkeAlertBoxCallback callback, void* callbackParam)

网页调用alert会走到这个接口填入的回调

[79] void wkeOnConfirmBox(wkeWebView webView, wkeConfirmBoxCallback callback, void* callbackParam)

暂无接口描述信息

[80] void wkeOnPromptBox(wkeWebView webView, wkePromptBoxCallback callback, void* callbackParam)

暂无接口描述信息

[81] void wkeOnNavigation(wkeWebView webView, wkeNavigationCallback callback, void* param)

网页开始浏览将触发回调

参数名
说明
callback
typedef bool(*wkeNavigationCallback)(wkeWebView webView, void* param, wkeNavigationType navigationType, const wkeString url);
wkeNavigationType
表示浏览触发的原因。可以取的值有:WKE_NAVIGATION_TYPE_LINKCLICK:点击a标签触发。WKE_NAVIGATION_TYPE_FORMSUBMITTE:点击form触发。WKE_NAVIGATION_TYPE_BACKFORWARD:前进后退触发。WKE_NAVIGATION_TYPE_RELOAD:重新加载触发
wkeNavigationCallback回调的返回值,如果是true,表示可以继续进行浏览,false表示阻止本次浏览。

[83] void wkeOnCreateView(wkeWebView webView, wkeCreateViewCallback callback, void* param)

网页点击a标签创建新窗口时将触发回调

参数名
说明
callback
typedef wkeWebView(*wkeCreateViewCallback)(wkeWebView webView, void* param, wkeNavigationType navigationType, const wkeString url, const wkeWindowFeatures* windowFeatures);

[85] void wkeOnDocumentReady(wkeWebView webView, wkeDocumentReadyCallback callback, void* param)

对应js里的body onl oad事件

[86] void wkeOnDocumentReady2(wkeWebView webView, wkeDocumentReady2Callback callback, void* param)

同上。区别是wkeDocumentReady2Callback多了wkeWebFrameHandle frameId参数。可以判断是否是主frame

[87] void wkeOnDownload(wkeWebView webView, wkeDownloadCallback callback, void* param)

页面下载事件回调。点击某些链接,触发下载会调用

[88] void wkeNetOnResponse(wkeWebView webView, wkeNetResponseCallback callback, void* param)

一个网络请求发送后,收到服务器response触发回调

[89] void wkeOnConsole(wkeWebView webView, wkeConsoleCallback callback, void* param)

网页调用console触发

[90] void wkeSetUIThreadCallback(wkeWebView webView, wkeCallUiThread callback, void* param)

暂时未实现

[91] void wkeOnLoadUrlBegin(wkeWebView webView, wkeLoadUrlBeginCallback callback, void* callbackParam)

任何网络请求发起前会触发此回调

参数名
说明
callback
typedef bool(*wkeLoadUrlBeginCallback)(wkeWebView webView, void* param, const char *url, void *job)
1,此回调功能强大,在回调里,如果对job设置了wkeNetHookRequest,则表示mb会缓存获取到的网络数据,并在这次网络请求 结束后调用wkeOnLoadUrlEnd设置的回调,同时传递缓存的数据。在此期间,mb不会处理网络数据。2,如果在wkeLoadUrlBeginCallback里没设置wkeNetHookRequest,则不会触发wkeOnLoadUrlEnd回调。3,如果wkeLoadUrlBeginCallback回调里返回true,表示mb不处理此网络请求(既不会发送网络请求)。返回false,表示mb依然会发送网络请求。

[92] void wkeOnLoadUrlEnd(wkeWebView webView, wkeLoadUrlEndCallback callback, void* callbackParam)

见wkeOnLoadUrlBegin的描述

[93] void wkeOnDidCreateScriptContext(wkeWebView webView, wkeDidCreateScriptContextCallback callback, void* callbackParam)

javascript的v8执行环境被创建时触发此回调

每个frame创建时都会触发此回调

[94] void wkeOnWillReleaseScriptContext(wkeWebView webView, wkeWillReleaseScriptContextCallback callback, void* callbackParam)

每个frame的javascript的v8执行环境被关闭时触发此回调

[95] void wkeOnWillMediaLoad(wkeWebView webView, wkeWillMediaLoadCallback callback, void* callbackParam)

video等多媒体标签创建时触发此回调

[96] bool wkeIsMainFrame(wkeWebView webView, wkeWebFrameHandle frameId)

判断frameId是否是主frame

[97] wkeWebFrameHandle wkeWebFrameGetMainFrame(wkeWebView webView)

获取主frame的句柄

[98] jsValue wkeRunJsByFrame(wkeWebView webView, wkeWebFrameHandle frameId, const utf8* script, bool isInClosure)

运行js在指定的frame上,通过frameId

参数名
说明
isInClosure
表示是否在外层包个function() {}形式的闭包
如果需要返回值,在isInClosure为true时,需要写return,为false则不用

[99] const utf8* wkeGetFrameUrl(wkeWebView webView, wkeWebFrameHandle frameId)

获取frame对应的url

[100] const utf8* wkeGetString(const wkeString s)

获取wkeString结构体对应的字符串,utf8编码

[101] const wchar_t* wkeGetStringW(const wkeString string)const wchar_t* wkeGetStringW(const wkeString string)

获取wkeString结构体对应的字符串,utf16编码

[102] void wkeSetString(wkeString string, const utf8* str, size_t len)

设置wkeString结构体对应的字符串,utf8编码

[103] void wkeSetStringW(wkeString string, const wchar_t* str, size_t len)

设置wkeString结构体对应的字符串,utf16编码

[104] wkeString wkeCreateStringW(const wchar_t* str, size_t len)

通过utf16编码的字符串,创建一个wkeString

[105] void wkeDeleteString(wkeString str)

析构这个wkeString

[106] void wkeSetUserKeyValue(wkeWebView webView, const char* key, void* value)

对webView设置一个key value键值对。可以用来保存用户自己定义的任何指针

[107] void* wkeGetUserKeyValue(wkeWebView webView, const char* key)

暂无接口描述信息

[108] int wkeGetCursorInfoType(wkeWebView webView)

暂无接口描述信息

[109] wkeWebView wkeCreateWebView()

创建一个webview,但不创建真窗口。一般用在离屏渲染里,如游戏

[110] void wkeDestroyWebView(wkeWebView webView)

效果同wkeDestroyWebWindow

[111] wkeWebView wkeCreateWebWindow(wkeWindowType type, HWND parent, int x, int y, int width, int height)

创建一个带真实窗口的wkeWebView

参数名
说明
wkeWindowType
WKE_WINDOW_TYPE_POPUP:普通窗口。WKE_WINDOW_TYPE_TRANSPARENT:透明窗口。mb内部通过layer window实现。WKE_WINDOW_TYPE_CONTROL:嵌入在父窗口里的子窗口。此时parent需要被设置

[112] void wkeDestroyWebWindow(wkeWebView webWindow)

销毁wkeWebView对应的所有数据结构,包括真实窗口等

[113] HWND wkeGetWindowHandle(wkeWebView webWindow)

获取窗口对应的真实句柄。和wkeGetHostHWND的实现完全相同

[114] void wkeOnWindowClosing(wkeWebView webWindow, wkeWindowClosingCallback callback, void* param)

wkeWebView如果是真窗口模式,则在收到WM_CLODE消息时触发此回调。可以通过在回调中返回false拒绝关闭窗口

[115] void wkeOnWindowDestroy(wkeWebView webWindow, wkeWindowDestroyCallback callback, void* param)

窗口即将被销毁时触发回调。不像wkeOnWindowClosing,这个操作无法取消

[116] void wkeShowWindow(wkeWebView webWindow, bool showFlag)

暂无接口描述信息

[117] void wkeEnableWindow(wkeWebView webWindow, bool enableFlag)

暂无接口描述信息

[118] void wkeMoveWindow(wkeWebView webWindow, int x, int y, int width, int height)

暂无接口描述信息

[119] void wkeMoveToCenter(wkeWebView webWindow)

窗口在父窗口或屏幕里居中

[120] void wkeResizeWindow(wkeWebView webWindow, int width, int height)

resize窗口,和wkeResize效果一样

[121] void wkeSetWindowTitle(wkeWebView webWindow, const utf8* title)

暂无接口描述信息

[122] void wkeSetWindowTitle(wkeWebView webWindow, const wchar_t* title)

暂无接口描述信息

[123] void wkeSetDeviceParameter(wkeWebView webView, const char* device, const char* paramStr, int paramInt, float paramFloat)

设置mb模拟的硬件设备环境。主要用在伪装手机设备场景

参数名
说明
device
设备的字符串。可取值有:"navigator.maxTouchPoints"此时 paramInt 需要被设置,表示 touch 的点数。"navigator.platform"此时 paramStr 需要被设置,表示js里获取的 navigator.platform字符串。"navigator.hardwareConcurrency"此时 paramInt 需要被设置,表示js里获取的 navigator.hardwareConcurrency 整数值。"screen.width"此时 paramInt 需要被设置,表示js里获取的 screen.width 整数值。"screen.height"此时 paramInt 需要被设置,表示js里获取的 screen.height 整数值。"screen.availWidth"此时 paramInt 需要被设置,表示js里获取的 screen.availWidth 整数值。"screen.availHeight"此时 paramInt 需要被设置,表示js里获取的 screen.availHeight 整数值。"screen.pixelDepth"此时 paramInt 需要被设置,表示js里获取的 screen.pixelDepth 整数值。"screen.pixelDepth"目前等价于"screen.pixelDepth"。"window.devicePixelRatio"同上

[124] void wkeInit()

初始化整个mb。此句必须在所有mb api前最先调用。并且所有mb api必须和调用wkeInit的线程为同个线程

[125] void wkeShutdown() (已作废)

关闭整个mb。调用后,所有mb api将不能再被调用,否则会有崩溃

[126] void wkeInitialize()

效果和wkeInit一模一样

[127] void wkeSetProxy(const wkeProxy* proxy)

设置整个mb的代码。此句是全局生效

[128] void wkeSetViewProxy(wkeWebView webView, wkeProxy* proxy)

设置整个mb的代码。此句是针对特定webview生效

[129] void wkeConfigure(const wkeSettings* settings)

设置一些配置项

参数名
说明
settings
typedef struct { wkeProxy proxy; unsigned int mask; } wkeSettings; mask可以取:WKE_SETTING_PROXY:效果和wkeSetProxy一样,通过proxy设置

[130] bool wkeIsInitialize()

暂无接口描述信息

[131] void wkeFinalize() (已作废)

效果和wkeShutdown一样

[132] void wkeSetMemoryCacheEnable(wkeWebView webView, bool b)

开启内存缓存。网页的图片等都会在内存缓存里。关闭后,内存使用会降低一些,但容易引起一些问题,如果不懂怎么用,最好别开

[133] void wkeSetTouchEnabled(wkeWebView webView, bool b)

开启触屏模式。开启后,鼠标消息将自动转换成触屏消息

[134] void wkeSetMouseEnabled(wkeWebView webView, bool b)

开启关闭鼠标消息,可以在开启触屏后,关闭鼠标消息

[135] void wkeSetNavigationToNewWindowEnable(wkeWebView webView, bool b)

关闭后,点a标签将不会弹出新窗口,而是在本窗口跳转

[136] void wkeSetCspCheckEnable(wkeWebView webView, bool b)

关闭后,跨域检查将被禁止,此时可以做任何跨域操作,如跨域ajax,跨域设置iframe

[137] void wkeSetNpapiPluginsEnabled(wkeWebView webView, bool b)

开启关闭npapi插件,如flash

[138] void wkeSetHeadlessEnabled(wkeWebView webView, bool b)

开启无头模式。开启后,将不会渲染页面,提升了网页性能。此功能方便用来实现一些爬虫,或者刷单工具

[139] void wkeSetDebugConfig(wkeWebView webView, const char* debugString, const char* param)

开启一些实验性选项。

参数名
说明
debugString
"showDevTools"开启开发者工具,此时param要填写开发者工具的资源路径,如file:///c:/miniblink-release/front_end/inspector.html。注意param此时必须是utf8编码。"wakeMinInterval"设置帧率,默认值是10,值越大帧率越低。"drawMinInterval"设置帧率,默认值是3,值越大帧率越低。"antiAlias"设置抗锯齿渲染。param必须设置为1。"minimumFontSize"最小字体。"minimumLogicalFontSize"最小逻辑字体。"defaultFontSize"默认字体。"defaultFixedFontSize"默认fixed字体。

[140] void wkeSetHandle(wkeWebView webView, HWND wnd)

设置wkeWebView对应的窗口句柄。

只有在无窗口模式下才能使用。如果是用wkeCreateWebWindow创建的webview,已经自带窗口句柄了。

[141] void wkeSetHandleOffset(wkeWebView webView, int x, int y)

设置无窗口模式下的绘制偏移。在某些情况下(主要是离屏模式),绘制的地方不在真窗口的(0, 0)处,就需要手动调用此接口

[142] void wkeSetViewSettings(wkeWebView webView, const wkeViewSettings* settings)

设置一些webview相关的设置.目前只有背景颜色可以设置

[143] void wkeSetTransparent(wkeWebView webView, bool transparent)

通知无窗口模式下,webview开启透明模式。

[144] bool wkeIsTransparent(wkeWebView webView)

判断窗口是否是分层窗口(layer window)

[145] void wkeSetUserAgent(wkeWebView webView, const utf8* userAgent)

设置webview的UA

[146] void wkeSetUserAgentW(wkeWebView webView, const wchar_t* userAgent)

暂无接口描述信息

[147] const utf8* wkeGetUserAgent(wkeWebView webView)

获取webview的UA

[148] void wkeLoadURL(wkeWebView webView, const utf8* url)

加载url。url必须是网络路径,如http://qq.com/

[149] void wkeLoadW(wkeWebView webView, const wchar_t* url)

暂无接口描述信息

[150] void wkeLoadHTML(wkeWebView webView, const utf8* html)

加载一段html

如果html里有相对路径,则是相对exe所在目录的路径

[151] void wkeLoadHtmlWithBaseUrl(wkeWebView webView, const utf8* html, const utf8* baseUrl)

加载一段html,但可以指定baseURL,也就是相对于哪个目录的url

[152] void wkeLoadFile(wkeWebView webView, const utf8* filename)

暂无接口描述信息

[153] const utf8* wkeGetURL(wkeWebView webView)

获取webview主frame的url

[154] void wkeNetSetHTTPHeaderField(void* jobPtr, wchar_t* key, wchar_t* value, bool response)

在wkeOnLoadUrlBegin回调里调用,表示设置http请求(或者file:///协议)的 http header field。response一直要被设置成false

[155] void wkeNetSetMIMEType(void* jobPtr, char* type)

在wkeOnLoadUrlBegin回调里调用,表示设置http请求的MIME type

[156] const char* wkeNetGetMIMEType(void* jobPtr, wkeString mime)

暂无接口描述信息

[157] void wkeNetSetData(void* jobPtr, void* buf, int len)

在wkeOnLoadUrlEnd里被调用,表示设置hook后缓存的数据

[158] void wkeNetCancelRequest(void* jobPtr)

在wkeOnLoadUrlBegin回调里调用,设置后,此请求将被取消。

[159] int wkeNetGetFavicon(wkeWebView webView, wkeOnNetGetFavicon callback, void* param)

获取favicon。

此接口必须在wkeOnLoadingFinish回调里调用。

[160] BOOL wkeNetHoldJobToAsynCommit(void* jobPtr)

高级用法。在wkeOnLoadUrlBegin回调里调用。 有时候,wkeOnLoadUrlBegin里拦截到一个请求后,不能马上判断出结果。此时可以调用本接口,然后在 异步的某个时刻,调用wkeNetContinueJob来让此请求继续进行

TRUE代表成功,FALSE代表调用失败,不能再调用wkeNetContinueJob了

[161] wkeRequestType wkeNetGetRequestMethod(void *jobPtr)

获取此请求的method,如post还是get

[162] wkePostBodyElements* wkeNetGetPostBody(void *jobPtr)

获取此请求中的post数据。只有当请求是post时才有效果

[163] wkePostBodyElements* wkeNetCreatePostBodyElements(wkeWebView webView, size_t length)

暂无接口描述信息

[164] void wkeNetFreePostBodyElements(wkePostBodyElements* elements)

暂无接口描述信息

[165] void wkeNetFreePostBodyElements(wkePostBodyElements* elements)

暂无接口描述信息

[166] wkePostBodyElement* wkeNetCreatePostBodyElement(wkeWebView webView)

暂无接口描述信息

[167] void wkeNetFreePostBodyElement(wkePostBodyElement* element)

这四个接口要结合起来使用。 当wkeOnLoadUrlBegin里判断是post时,可以通过wkeNetCreatePostBodyElements来创建一个新的post数据包。 然后wkeNetFreePostBodyElements来释放原post数据。

[168] int jsArgCount(jsExecState es)

获取es里存的参数个数。一般是在绑定的js调用c++回调里使用,判断js传递了多少参数给c++

[169] jsType jsArgType(jsExecState es, int argIdx)

判断第argIdx个参数的参数类型。argIdx从是个0开始计数的值。如果超出jsArgCount返回的值,将发生崩溃

[170] jsValue jsArg(jsExecState es, int argIdx)

获取第argIdx对应的参数的jsValue值。

[171] jsType jsTypeOf(jsValue v)

获取v对应的类型。

[172] bool jsIsNumber(jsValue v)

判断v是否为数字

[173] bool jsIsString(jsValue v)

暂无接口描述信息

[174] bool jsIsBoolean(jsValue v)

暂无接口描述信息

[175] bool jsIsObject(jsValue v)

暂无接口描述信息

[176] 当v不是数字、字符串、undefined、null、函数的时候,此接口返回true

暂无接口描述信息

[177] bool jsIsTrue(jsValue v)

如果v本身是个布尔值,返回对应的true或者false;如果是个对象(JSTYPE_OBJECT),返回false(这里注意)

[178] bool jsIsFalse(jsValue v)

等价于!jsIsTrue(v)

[179] int jsToInt(jsExecState es, jsValue v)

如果v是个整形或者浮点,返回相应值(如果是浮点,返回取整后的值)。如果是其他类型,返回0(这里注意)

[180] double jsToDouble(jsExecState es, jsValue v)

如果v是个浮点形,返回相应值。如果是其他类型,返回0.0(这里注意)

[181] const wchar_t* jsToTempStringW(jsExecState es, jsValue v)

如果v是个字符串,返回相应值。如果是其他类型,返回L""(这里注意) 另外,返回的字符串不需要外部释放。mb会在下一帧自动释放

[182] const utf8* jsToTempString(jsExecState es, jsValue v)

同上

[183] const utf8* jsToString(jsExecState es, jsValue v)

同上,只是返回的是utf8编码

[184] const wchar_t* jsToStringW(jsExecState es, jsValue v)

暂无接口描述信息

[185] jsValue jsInt(int n)

创建建一个int型的jsValue,注意是创建

[186] jsValue jsString(jsExecState es, const utf8* str)

构建一个utf8编码的字符串的的jsValue。str会在内部拷贝保存,注意是创建

[187] jsValue jsArrayBuffer(jsExecState es, char * buffer, size_t size)

构建一个js的arraybuffer类型的jaValue。主要用来处理一些二进制数据,注意是创建

[188] wkeMemBuf* jsGetArrayBuffer(jsExecState es, jsValue value)

获取一个js的arraybuffer类型的数据。主要用来处理一些二进制数据

[189] jsValue jsEmptyObject(jsExecState es)

构建一个临时js object的jsValue,注意是创建

[190] jsValue jsEvalW(jsExecState es, const wchar_t* str)

执行一段js,并返回值。

str的代码会在mb内部自动被包裹在一个function(){}中。所以使用的变量会被隔离 注意:要获取返回值,请写return。这和wke不太一样。wke不需要写retrun

[191] jsValue jsEvalExW(jsExecState es, const wchar_t* str, bool isInClosure)

和上述接口的区别是,isInClosure表示是否要包裹一层function(){}。jsEvalW相当于jsEvalExW(es, str, false)

如果需要返回值,在isInClosure为true时,需要写return,为false则不用

[192] jsValue jsCall(jsExecState es, jsValue func, jsValue thisValue, jsValue* args, int argCount)

调用一个func对应的js函数。如果此js函数是成员函数,则需要填thisValue。 否则可以传jsUndefined。args是个数组,个数由argCount控制。 func可以是从js里取的,也可以是自行构造的。

[193] jsValue jsCallGlobal(jsExecState es, jsValue func, jsValue* args, int argCount)

调用window上的全局函数

[194] jsValue jsGet(jsExecState es, jsValue object, const char* prop)

如果object是个js的object,则获取prop指定的属性。如果object不是js object类型,则返回jsUndefined

[195] void jsSet(jsExecState es, jsValue object, const char* prop, jsValue value)

设置object的属性

[196] jsValue jsGetGlobal(jsExecState es, const char* prop)

获取window上的属性

[197] void jsSetGlobal(jsExecState es, const char* prop, jsValue v)

设置window上的属性

[198] jsValue jsGetAt(jsExecState es, jsValue object, int index)

设置js arrary的第index个成员的值,object必须是js array才有用,否则会返回jsUndefined

[199] void jsSetAt(jsExecState es, jsValue object, int index, jsValue value)

设置js arrary的第index个成员的值,object必须是js array才有用。

[200] jsKeys* jsGetKeys(jsExecState es, jsValue object)

获取object有哪些key

[201] int jsGetLength(jsExecState es, jsValue object)

获取js arrary的长度,object必须是js array才有用。

[202] void jsSetLength(jsExecState es, jsValue object, int length)

设置js arrary的长度,object必须是js array才有用。

[203] wkeWebView jsGetWebView(jsExecState es)

获取es对应的webview

[204] void jsGC()

强制垃圾回收

[205] void fastcall jsBindFunction(const char* name, jsNativeFunction fn, unsigned int argCount)

绑定一个全局函数到主frame的window上。

此接口只能绑定主frame,并且特别需要注意的是,因为历史原因,此接口是fastcall调用约定!(但wkeJsBindFunction不是)另外此接口和wkeJsBindFunction必须在webview创建前调用

[206] void jsBindGetter(const char* name, jsNativeFunction fn)

对js winows绑定一个属性访问器,在js里windows.XXX这种形式调用时,fn会被调用

jsBindGetter("XXX")

[207] void jsBindSetter(const char* name, jsNativeFunction fn)

对js winows绑定一个属性设置器。

[208] void wkeJsBindFunction(const char* name, wkeJsNativeFunction fn, void* param, unsigned int argCount)

和jsBindFunction功能类似,但更方便一点,可以传一个param做自定义数据。

此接口和wkeJsBindFunction必须在webview创建前调用

[209] jsValue jsObject(jsExecState es, jsData* data)

构建一个js Objcet,可以传递给js使用。

[210] jsValue jsFunction(jsExecState es, jsData* data)

创建一个主frame的全局函数。jsData的用法如上。js调用:XXX() 此时jsData的callAsFunction触发。 其实jsFunction和jsObject功能基本类似。且jsObject的功能更强大一些

[211] jsData* jsGetData(jsExecState es, jsValue value)

获取jsObject或jsFunction创建的jsValue对应的jsData指针。

[212] jsExceptionInfo* jsGetLastErrorIfException(jsExecState es);

当wkeRunJs、jsCall等接口调用时,如果执行的js代码有异常,此接口将获取到异常信息。否则返回nullptr。

MinilBlink支持库源码

热门推荐

相关文章