# hybrid 和 jskh5
本页主要讲 hybrid 模块和 jskh5 API 说明,其他关于 JSKit Hybrid 参考 JSKit Hybrid 指南。
# hybrid 模块
hybrid 模块从 JSKit 引擎的中使用
# 导入 hybrid
import * as jskh from 'hybrid';
# 设置 Web 回调
function setWebCallback(cb: WebCallback): void
interface WebCallback {
onPageStarted?: (url: string) => void;
onPageFinished?: (url: string) => void;
onWebMessage?: (name: string, data: string | undefined, retCb: function | undefined) => void;
onReceivedError?: (url: string, code: number, msg: string) => void;
onReceivedHttpError?: (url: string, code: number, msg: string) => void;
}
- cb 设置 Web 侧的 jskh5 的回调。
- onWebMessage 接收 Web 侧的 jskh5.sendTo 方法的消息。如果 retCb 不为 undefined,表示 jskh5.sendTo 期望返回一个异步结果给 Web 侧。
# 加载 URL
function loadUrl(url: string): void;
控制 Web 浏览器加载 url。
# 注入 script
function injectScript(url: string, cb: function | undefined): void;
# 向 Web 浏览器发送消息
function sendToWeb(name: string, data: string | undefined, ret: function | undefined): void;
- ret 为一个 形参为 string 类型的函数, jskh5.onMessage 设置的处理函数的返回值。
# 执行 JS 语句
function evalScript(code: string, ret: function | undefined): void;
- ret 为一个 形参为 string 类型的函数, 执行 code 的结果回调。
# 获取当前环境
function getEnv(key: string): void;
# jskh5 对象
jskh5 挂载在 window 下的一个全局对象实现了如下接口:
interface JSKH5API{
httpRequest: (req: Request) => void;
loadScript: (url: string, cb: function) =>void;
onMessage: (name: string, data: string | undefined, retCb: function | undefined) => void;
sendTo: (name: string, data: string | undefined, ret: function | undefined) => void;
registerMenu: (name: string, callback: function) => string;
unregisterMenu: (menuid: string) => void;
setClipboard: (data: string) => void;
showToast: (msg: string) => void;
version: string;
}
jskh5 的用例见项目内的 /jsweb/gm-api.js
文件。
//待补充……