Types
These excerpts come from the types exported at the package root. Imports and dependency types are omitted; this is not a standalone module to copy.
The public navigation callback returns boolean | Promise<boolean>. Read props, methods, and events for behavior, lifecycle, and platform restrictions.
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;
}Cookie
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;
}