# 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 文件。

//待补充……