Skip to content
0.2.0 문서입니다. 설치한 버전의 API와 변경 사항을 확인하세요.

Types ​

Package root에서 내보낸 타입을 실제 소스에서 생성한 발췌입니다. Import와 의존 타입은 생략했습니다. 복사해 쓰는 전체 모듈이 아닙니다.

컴포넌트의 공개 탐색 콜백은 boolean | Promise<boolean>을 반환합니다. Props·수명·플랫폼 동작은 Props, Methods, Events에서 확인하세요.

NitroWebViewProps ​

ts
export interface NitroWebViewProps extends Omit<NativeNitroWebViewProps, 'onShouldStartLoadWithRequest'> {
    onShouldStartLoadWithRequest?: OnShouldStartLoadWithRequest;
}

NitroWebViewType ​

ts
export type NitroWebViewType = Readonly<HybridView<HybridViewProps, NitroWebViewMethods>>;

HtmlSource ​

ts
export interface HtmlSource {
    html: string;
    baseUrl?: string;
}

UriSource ​

ts
export interface UriSource {
    uri: string;
    headers?: Record<string, string>;
    method?: WebViewSourceMethod;
    body?: string;
}

WebViewSource ​

ts
export type WebViewSource = UriSource | HtmlSource;

WebViewSourceMethod ​

ts
export type WebViewSourceMethod = 'GET' | 'POST';

NitroWebViewMethods ​

ts
export interface NitroWebViewMethods extends HybridViewMethods {
    goBack(): void;
    goForward(): void;
    reload(): void;
    stopLoading(): void;
    evaluateJavaScript(code: string): Promise<string>;
    injectJavaScript(code: string): void;
    postMessage(data: string): void;
    getCookies(url: string): Promise<Cookie[]>;
    setCookie(url: string, cookie: Cookie): Promise<void>;
    clearCookies(): Promise<void>;
    clearCache(): Promise<void>;
    clearHistory(): Promise<void>;
    requestFocus(): Promise<void>;
}

WebViewLoadEvent ​

ts
export interface WebViewLoadEvent {
    nativeEvent: WebViewNavigationState;
}

WebViewLoadProgressEvent ​

ts
export interface WebViewLoadProgressEvent {
    nativeEvent: WebViewLoadProgressNativeEvent;
}

WebViewLoadProgressNativeEvent ​

ts
export interface WebViewLoadProgressNativeEvent extends WebViewNavigationState {
    progress: number;
}

WebViewMessageEvent ​

ts
export interface WebViewMessageEvent {
    nativeEvent: WebViewMessageNativeEvent;
}

WebViewMessageNativeEvent ​

ts
export interface WebViewMessageNativeEvent {
    data: string;
    url: string;
    sourceOrigin?: string;
    isMainFrame?: boolean;
}

WebViewNavigationState ​

ts
export interface WebViewNavigationState {
    url: string;
    title: string;
    loading: boolean;
    canGoBack: boolean;
    canGoForward: boolean;
}

WebViewNavigationType ​

ts
export type WebViewNavigationType = 'click' | 'formsubmit' | 'backforward' | 'reload' | 'formresubmit' | 'other';

ShouldStartLoadRequest ​

ts
export interface ShouldStartLoadRequest {
    url: string;
    navigationType: WebViewNavigationType;
    mainDocumentURL?: string;
    isTopFrame?: boolean;
    hasTargetFrame?: boolean;
}

NitroWebViewErrorEvent ​

ts
export interface NitroWebViewErrorEvent {
    nativeEvent: NitroWebViewErrorNativeEvent;
}

NitroWebViewErrorNativeEvent ​

ts
export interface NitroWebViewErrorNativeEvent {
    code: number;
    description: string;
    url: string;
    domain: string;
}

WebViewErrorEvent ​

ts
export type WebViewErrorEvent = NitroWebViewErrorEvent;

NitroWebViewHttpErrorEvent ​

ts
export interface NitroWebViewHttpErrorEvent {
    nativeEvent: NitroWebViewHttpErrorNativeEvent;
}

NitroWebViewHttpErrorNativeEvent ​

ts
export interface NitroWebViewHttpErrorNativeEvent {
    statusCode: number;
    url: string;
    description: string;
}

NitroWebViewRenderProcessGoneEvent ​

ts
export interface NitroWebViewRenderProcessGoneEvent {
    nativeEvent: NitroWebViewRenderProcessGoneNativeEvent;
}

NitroWebViewRenderProcessGoneNativeEvent ​

ts
export interface NitroWebViewRenderProcessGoneNativeEvent {
    didCrash?: boolean;
}

NitroWebViewScrollEvent ​

ts
export interface NitroWebViewScrollEvent {
    nativeEvent: NitroWebViewScrollNativeEvent;
}

NitroWebViewScrollNativeEvent ​

ts
export interface NitroWebViewScrollNativeEvent {
    contentOffset: WebViewPoint;
    contentSize: WebViewPoint;
    contentInset?: WebViewPoint;
    layoutMeasurement?: WebViewPoint;
    zoomScale?: number;
}

WebViewPoint ​

ts
export interface WebViewPoint {
    x: number;
    y: number;
}

OpenWindowEvent ​

ts
export interface OpenWindowEvent {
    nativeEvent: OpenWindowNativeEvent;
}

OpenWindowNativeEvent ​

ts
export interface OpenWindowNativeEvent {
    url: string;
}
ts
export interface Cookie {
    name: string;
    value: string;
    domain?: string;
    path?: string;
    expires?: number;
    secure?: boolean;
    httpOnly?: boolean;
}

FileDownload ​

ts
export interface FileDownload {
    url: string;
    mimeType?: string;
    fileName?: string;
    contentLength?: number;
    userAgent?: string;
}

FileDownloadEvent ​

ts
export interface FileDownloadEvent {
    nativeEvent: FileDownload;
}

OriginWhitelistGuard ​

ts
export type OriginWhitelistGuard = (event: ShouldStartLoadRequest) => Promise<boolean>;

OnShouldStartLoadWithRequest ​

ts
export type OnShouldStartLoadWithRequest = (event: ShouldStartLoadRequest) => boolean | Promise<boolean>;

LoadHtmlCommand ​

ts
export interface LoadHtmlCommand {
    type: 'loadHtml';
    html: string;
    baseUrl?: string;
}

LoadUrlCommand ​

ts
export interface LoadUrlCommand {
    type: 'loadUrl';
    url: string;
    method?: 'GET' | 'POST';
    body?: string;
}

NativeViewCommand ​

ts
export type NativeViewCommand = LoadUrlCommand | LoadHtmlCommand;

LoadStartDispatcher ​

ts
export type LoadStartDispatcher = (payload: NativeLoadStartPayload) => void;

NativeLoadStartPayload ​

ts
export interface NativeLoadStartPayload {
    navigationId: number;
    url: string;
    title: string;
    loading: true;
    canGoBack: boolean;
    canGoForward: boolean;
}

OnLoadStart ​

ts
export type OnLoadStart = NonNullable<NitroWebViewProps['onLoadStart']>;

LoadDispatcher ​

ts
export type LoadDispatcher = (payload: NativeLoadPayload) => void;

NativeLoadPayload ​

ts
export interface NativeLoadPayload {
    navigationId: number;
    url: string;
    title: string;
    loading: false;
    canGoBack: boolean;
    canGoForward: boolean;
}

OnLoad ​

ts
export type OnLoad = NonNullable<NitroWebViewProps['onLoad']>;

LoadEndDispatcher ​

ts
export type LoadEndDispatcher = (payload: NativeLoadEndPayload) => void;

LoadEndOutcome ​

ts
export type LoadEndOutcome = 'success' | 'failure';

NativeLoadEndPayload ​

ts
export interface NativeLoadEndPayload {
    navigationId: number;
    outcome: LoadEndOutcome;
    url: string;
    title: string;
    loading: false;
    canGoBack: boolean;
    canGoForward: boolean;
}

OnLoadEnd ​

ts
export type OnLoadEnd = NonNullable<NitroWebViewProps['onLoadEnd']>;

BlobDownloadRequest ​

ts
export interface BlobDownloadRequest {
    requestId: string;
    url: string;
    fileName: string;
}

BlobDownloadResult ​

ts
export type BlobDownloadResult = BlobDownloadPayload | (BlobDownloadRequest & {
    error: string;
});

AndroidBridgeSandbox ​

ts
export interface AndroidBridgeSandbox {
    [ANDROID_NATIVE_BRIDGE_NAME]?: AndroidNativeBridge;
    [BRIDGE_NAME]?: {
        postMessage?: (data: unknown) => void;
        [key: string]: unknown;
    };
}

AndroidNativeBridge ​

ts
export interface AndroidNativeBridge {
    postMessage(data: string): void;
}

BridgePlatform ​

ts
export type BridgePlatform = 'ios' | 'android';

IosBridgeSandbox ​

ts
export interface IosBridgeSandbox {
    webkit?: {
        messageHandlers?: {
            [BRIDGE_NAME]?: WebKitMessageHandler;
        };
    };
    [BRIDGE_NAME]?: {
        postMessage?: (data: unknown) => void;
        [key: string]: unknown;
    };
}

WebKitMessageHandler ​

ts
export interface WebKitMessageHandler {
    postMessage(data: unknown): void;
}

MIT licensed · Built with Nitro Modules