UNPKG

@wisdomgarden/cloak-plugin-inappbrowser

Version:

Open an in-app browser window for Cloak Framework

60 lines (51 loc) 1.96 kB
import { Plugin, Cloak, ESObject, CloakPlugins } from "@wisdomgarden/cloak"; // the type prefixed with `I` means it is copied from ets definition export interface IBrowserExecutePayload { code: string; } export type IBrowserEvent = "loadstart" | "loadstop" | "loaderror" | "exit"; export type IOpenTarget = "_self" | "_blank" | "_system" | null; export interface ICreateBrowserOptions { clearCache?: boolean | null; clearcache?: boolean | null; clearSessionCache?: boolean | null; clearsessioncache?: boolean | null; session?: string | null; closeButtonCaption?: string | null; closebuttoncaption?: string | null; footer?: boolean | null; footerColor?: string | null; footercolor?: string | null; hideNavigationButtons?: boolean | null; hidenavigationbuttons?: boolean | null; } export interface IBrowserEventPayload { event: IBrowserEvent; url: string; } export interface InAppBrowserObject { open: () => boolean; close: () => boolean; show: () => boolean; hide: () => boolean; executeScript: (payload: IBrowserExecutePayload) => Promise<ESObject>; insertCSS: (payload: IBrowserExecutePayload) => Promise<ESObject>; addEventListener: (event: IBrowserEvent, handler?: (event: IBrowserEventPayload) => void) => void; } export interface InAppBrowserInstanceRxjs extends InAppBrowserObject { on: (event: IBrowserEvent) => { subscribe: (handler: (event: IBrowserEventPayload) => void) => void; }; } export interface InAppBrowserPlugin extends Plugin { currentBrowser: InAppBrowserObject | null; create(url: string, target?: IOpenTarget, options?: ICreateBrowserOptions): InAppBrowserInstanceRxjs; createBrowser(url: string, target?: string, options?: ICreateBrowserOptions): InAppBrowserObject; } export const register: () => void; export const InAppBrowser: InAppBrowserPlugin; declare module "@wisdomgarden/cloak" { export interface CloakPlugins { InAppBrowser: InAppBrowserPlugin; } }