InAppBrowser for NativeScript
Getting started
tns plugin add nativescript-inappbrowser
Usage
Methods | Action |
---|
open | Opens the url with Safari in a modal on iOS using SFSafariViewController, and Chrome in a new custom tab on Android. On iOS, the modal Safari will not share cookies with the system Safari. |
close | Dismisses the system's presented web browser. |
openAuth | Opens the url with Safari in a modal on iOS using SFAuthenticationSession/ASWebAuthenticationSession, and Chrome in a new custom tab on Android. On iOS, the user will be asked whether to allow the app to authenticate using the given url (OAuth flow with deep linking redirection). |
closeAuth | Dismisses the current authentication session. |
isAvailable | Detect if the device supports this plugin. |
iOS Options
Property | Description |
---|
dismissButtonStyle (String) | The style of the dismiss button. [done /close /cancel ] |
preferredBarTintColor (String) | The color to tint the background of the navigation bar and the toolbar. [white /#FFFFFF ] |
preferredControlTintColor (String) | The color to tint the control buttons on the navigation bar and the toolbar. [gray /#808080 ] |
readerMode (Boolean) | A value that specifies whether Safari should enter Reader mode, if it is available. [true /false ] |
animated (Boolean) | Animate the presentation. [true /false ] |
modalPresentationStyle (String) | The presentation style for modally presented view controllers. [automatic /none /fullScreen /pageSheet /formSheet /currentContext /custom /overFullScreen /overCurrentContext /popover ] |
modalTransitionStyle (String) | The transition style to use when presenting the view controller. [coverVertical /flipHorizontal /crossDissolve /partialCurl ] |
modalEnabled (Boolean) | Present the SafariViewController modally or as push instead. [true /false ] |
enableBarCollapsing (Boolean) | Determines whether the browser's tool bars will collapse or not. [true /false ] |
Android Options
Property | Description |
---|
showTitle (Boolean) | Sets whether the title should be shown in the custom tab. [true /false ] |
toolbarColor (String) | Sets the toolbar color. [gray /#808080 ] |
secondaryToolbarColor (String) | Sets the color of the secondary toolbar. [white /#FFFFFF ] |
enableUrlBarHiding (Boolean) | Enables the url bar to hide as the user scrolls down on the page. [true /false ] |
enableDefaultShare (Boolean) | Adds a default share item to the menu. [true /false ] |
animations (Object) | Sets the start and exit animations. [{ startEnter, startExit, endEnter, endExit } ] |
headers (Object) | The data are key/value pairs, they will be sent in the HTTP request headers for the provided url. [{ 'Authorization': 'Bearer ...' } ] |
forceCloseOnRedirection (Boolean) | Open Custom Tab in a new task to avoid issues redirecting back to app scheme. [true /false ] |
Demo
import { openUrl } from 'tns-core-modules/utils/utils'
import { alert } from 'tns-core-modules/ui/dialogs'
import InAppBrowser from 'nativescript-inappbrowser'
...
openLink = async () => {
try {
const url = 'https://www.google.com'
if (await InAppBrowser.isAvailable()) {
const result = await InAppBrowser.open(url, {
dismissButtonStyle: 'cancel',
preferredBarTintColor: '#453AA4',
preferredControlTintColor: 'white',
readerMode: false,
animated: true,
modalPresentationStyle: 'fullScreen',
modalTransitionStyle: 'partialCurl',
modalEnabled: true,
enableBarCollapsing: false,
showTitle: true,
toolbarColor: '#6200EE',
secondaryToolbarColor: 'black',
enableUrlBarHiding: true,
enableDefaultShare: true,
forceCloseOnRedirection: false,
animations: {
startEnter: 'slide_in_right',
startExit: 'slide_out_left',
endEnter: 'slide_in_left',
endExit: 'slide_out_right'
},
headers: {
'my-custom-header': 'my custom header value'
}
})
alert({
title: 'Response',
message: JSON.stringify(result),
okButtonText: 'Ok'
})
}
else {
openUrl(url);
}
}
catch(error) {
alert({
title: 'Error',
message: error.message,
okButtonText: 'Ok'
})
}
}
...
Credits 👍
Contributors ✨
Thanks goes to these wonderful people:
Financial Contributors
Become a financial contributor and help us sustain our community. [Contribute]
Individuals
Organizations
Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]
Supporting 🍻
I believe in Unicorns 🦄
Support me, if you do too.
Professionally supported nativescript-inappbrowser is coming soon
Security contact information 🚨
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.
Happy coding 💯
Made with ❤️