Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
@phemium-costaisa/cordova-plugin-ionic-webview
Advanced tools
A Web View plugin for Cordova, focused on providing the highest performance experience for Ionic apps (but can be used with any Cordova app).
This plugin uses WKWebView on iOS and the latest evergreen webview on Android. Additionally, this plugin makes it easy to use HTML5 style routing that web developers expect for building single-page apps.
Note: This repo and its documentation are for cordova-plugin-ionic-webview
@ 5.x
, which uses the new features that may not work with all apps. See Requirements and Migrating to 5.x.
2.x documentation can be found here.
:book: Documentation: https://beta.ionicframework.com/docs/building/webview
:mega: Support/Questions? Please see our Support Page for general support questions. The issues on GitHub should be reserved for bug reports and feature requests.
:sparkling_heart: Want to contribute? Please see CONTRIBUTING.md.
This plugin has several configuration options that can be set in config.xml
.
Preferences available for both iOS and Android
<preference name="Hostname" value="app" />
Default value is localhost
.
Example ionic://app
on iOS, http://app
on Android.
If you change it, you'll need to add a new allow-navigation
entry in the config.xml
for the configured url (i.e <allow-navigation href="http://app/*"/>
if Hostname
is set to app
).
This is only needed for the Android url when using http://
, https://
or a custom scheme. All ionic://
urls are whitelisted by the plugin.
Preferences only available Android platform
<preference name="Scheme" value="https" />
Default value is http
Configures the Scheme the app uses to load the content.
<preference name="ResolveServiceWorkerRequests" value="true" />
Default value is false
Enable to resolve requests made by Service Workers through the local server.
<preference name="MixedContentMode" value="2" />
Configures the WebView's behavior when an origin attempts to load a resource from a different origin.
Default value is 0
(MIXED_CONTENT_ALWAYS_ALLOW
), which allows loading resources from other origins.
Other possible values are 1
(MIXED_CONTENT_NEVER_ALLOW
) and 2
(MIXED_CONTENT_COMPATIBILITY_MODE
)
Preferences only available for iOS platform
<preference name="iosScheme" value="httpsionic" />
Default value is ionic
Configures the Scheme the app uses to load the content.
Values like http
, https
or file
are not valid and will use default value instead.
If you change it, you'll need to add a new allow-navigation
entry in the config.xml
for the configured scheme (i.e <allow-navigation href="httpsionic://*"/>
if iosScheme
is set to httpsionic
).
<preference name="WKSuspendInBackground" value="false" />
Default value is true
(suspend).
Set to false to stop WKWebView suspending in background too eagerly.
<preference name="KeyboardAppearanceDark" value="false" />
Whether to use a dark styled keyboard on iOS
<preference name="ScrollEnabled" value="true" />
Ionic apps work better if the WKWebView is not scrollable, so the scroll is disabled by default, but can be enabled with this preference. This only affects the main ScrollView of the WKWebView, so only affects the body, not other scrollable components.
cordova-ios
4+cordova-android
6.4+Remove and re-add the Web View plugin:
cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview@latest
If using cordova-android
< 9, make sure you have <preference name="android-minSdkVersion" value="21" />
in the config.xml as this version of the plugin only supports Android 5+ (SDK 21+). If using cordova-android
>= 9 is not neccessary as cordova-android
9 only supports Android 5.1+ (SDK 22+)
Since version 2, apps are served from HTTP on Android by default.
http://localhost
. If Hostname
and Scheme
preferences are set, then origin will be schemeValue://HostnameValue
.Since version 3, apps are served from ionic://
scheme on iOS by default.
ionic://localhost
. If Hostname
and iosScheme
preferences are set, then origin will be iosSchemeValue://HostnameValue
.The WebView is not able to display images, videos or other files from file or content protocols or if it doesn't have protocol at all. For those cases use window.Ionic.WebView.convertFileSrc()
to get the proper url.
Replace any usages of window.Ionic.normalizeURL()
and window.wkRewriteURL()
with window.Ionic.WebView.convertFileSrc()
.
For Ionic Angular projects, there is an Ionic Native wrapper:
npm install @ionic-native/ionic-webview@latest
FAQs
Ionic Web View Engine Plugin
We found that @phemium-costaisa/cordova-plugin-ionic-webview demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.