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。