0.0.0 • Published 4 months ago

@dynamix/react-native-webview v0.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Wrapper for React Native WebView component with easy custom event handlers.

Installation

npm install @dynamix/react-native-webview

Usage

import dynamix from "@dynamix/react-native";
import { WebView } from "@dynamix/react-native-webview";

function MyWebView() {
  return (
    <WebView
      source={{ uri: "https://grida.co" }}
      // disable redirecting on it's own
      preventDefaultAnchorClick
      // use dynamix
      dynamix={dynamix.configure({
        onRoute: ({ route }) => {
          // handle in-app routing.
          // don't forget to to add `preventDefaultAnchorClick` prop to prevent webview from redirecting on it's own
        },
        onMessage: ({ message }) => {
          // handle your custom message from web
        },
      })}
      scalesPageToFit
      allowsLinkPreview={false}
      onMessage={(event) => {
        console.log(event.nativeEvent.data);
      }}
    />
  );
}

Props

Below are the extra props that are available on top of the default WebView props.

nametypedefaultdescription
dynamixDynamixReactNativenulldynamix instance
disableZoombooleanfalseDisable zooming (which is a default webview behaviour) by injecting javascript
preventDefaultTouchstartbooleanfalsePrevent default touchstart event by injecting javascript
preventDefaultGestureStartbooleanfalsePrevent default gesturestart event by injecting javascript
disableUserSelectbooleanfalseDisable user select by injecting javascript
disableAnchorDragbooleanfalseDisable <a> anchor drag on long press by injecting javascript
preventDefaultAnchorClickbooleanfalsePrevent default anchor click by injecting javascript
propagteAnchorClickbooleantruePropagate anchor click with window.ReactNativeWebView.postMessage(target.href) by injecting javascript, this won't be available via onMessage, use onAnchorClick instead.
onAnchorClick(href: string, target?: string) => voidnullCallback for anchor (link) click
debug_injected_javascriptbooleanfalseIf set, it will log the final injected javascript combined with the one you provided.