用于构建
Evt<unknown>
事件触发器interface DomActivity {
readonly $d: Document;
open(): void;
close(): void;
waitForClose(): Promise<void>;
$appendDomToBody(ele: HTMLElement): void;
closeAble: boolean;
background: string;
titleText: string;
titleHeight: number;
titleVisible: boolean;
}
namespace DomActivity {
interface Ctor<A extends DomActivity = DomActivity> {
$d: Document;
new (name: string): A;
prototype: A;
}
interface ActivityLifeCycle<A extends DomActivity = DomActivity> {
onInit(activity: A): void;
afterInited(activity: A): void;
}
}
declare namespace BFS.Lib {
interface WebviewActivity extends DomActivity {
readonly devicePixelRatio: number;
src: string;
width: number;
height: number;
postMessage(data: unknown): void;
onMessage: Evt<unknown>;
evalJavascript(code: string): void;
onLoaded: Evt<Window>;
}
type WebviewActivityCtor = DomActivity.Ctor<WebviewActivity>;
}
import "@bfs/bfchain-runtime-typings";
const { createActivity } = bfsprocess.import('@bfs/lib-dom-activity');
const libWebview = bfsprocess.import("@bfs/lib-webview-activity");
// 创建一个页面实例
const mainAc = createActivity("v3", libWebview.WebViewActivity);
// 设置页面背景色
mainAc.background = "red";
// 设置标题是否可见
mainAc.titleVisible = true;
// 设置页面是否可关闭
mainAc.closeAble = false;
// 打开页面
mainAc.open();
// 设置页面URL
mainAc.src = "http://localhost:8100";
// 设置页面标题
mainAc.titleText = "这是自定义标题";
// 代码注入
mainAc.evalJavascript(`console.log("这是注入的代码")`)
// 5s后关闭页面
setTimeout(()=>{
mainAc.close()
}, 5000)