Important files
Javascript implementation:
Usage from JS:
Android implementation:
- CustomWebViewManager.java
- This file contains all the logic for the custom webview. In this case all I do is extend the ReactWebViewClient and override
shouldOverrideUrlLoading
which lets me hook into URL navigations. DispatchesonNavigationCompleted
event if URL is equals to thefinalUrl
prop.
- This file contains all the logic for the custom webview. In this case all I do is extend the ReactWebViewClient and override
- CustomWebViewManagerPackager.java
- The packager-class, used in MainApplication to hook up the above ViewManager to the app.
iOS implementation:
- RCTCustomWebView.h
- Header-file for the webview
- RCTCustomWebView.m
- Same logic as Android. Overriding
shouldStartLoadWithRequest
to hook into URL navigation. DispatchesonNavigationCompleted
event if URL is equals to thefinalUrl
prop.
- Same logic as Android. Overriding
- RCTCustomWebViewManager.h
- Header-file for view manager
- RCTCustomWebViewManager.m
- Inherits from RN's RCTWebViewManager. Adds the
finalUrl
prop and theonNavigationCompleted
event.
- Inherits from RN's RCTWebViewManager. Adds the
- RCTWebView+Custom.h
- Adding a category to
RCTWebView
so we can expose (& call)shouldStartLoadWithRequest
from (the child-cass)RCTCustomWebView
. Not really important to this example, but good to note.
- Adding a category to