WebView - WebSDK Support

This article describes how to use the MoEngage Web SDK in WebView inside a Mobile App.

info

Information

  • WebSDK uses browser storage, which is not enabled by default for WebView Applications.
  • For Mobile Apps, we must explicitly enable browser storage by providing javascript permission.

Steps to Enable WebSDK in WebView

To run WebSDK in WebView,

  • Ensure you have correctly integrated Web SDK into your website.
  • Ensure you provide permission to use JavaScript for your Android/iOS app.

For Android Apps

Step 1: Configure Your WebView

Within your app, locate the WebView component for which you wish to enable JavaScript. Ensure you have the proper imports:

Java
import android.webkit.WebView;
import android.webkit.WebSettings;

Step 2: Enable JavaScript and DomStorage Permissions

Using the WebSettings class, enable JavaScript:

Java
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true); // Enable DOM storage API

Step 3: Advanced Settings

For more control, you may use additional settings such as:

Java
webSettings.setJavaScriptCanOpenWindowsAutomatically(true); // Allow JS to open windows without user interaction
info

Information

It is important to consider the security implications of enabling JavaScript. Always validate the URL you load in WebView.

For iOS Apps

Step 1: Import WebKit

First, ensure you've imported the WebKit framework in your ViewController:

Swift
import WebKit

Step 2: Create a WKWebView

Create an instance of WKWebView and add it to your view:
swift
var webView: WKWebView! 
webView = WKWebView(frame: .zero, configuration: WKWebViewConfiguration())
view.addSubview(webView)

Step 3: Enable JavaScript

JavaScript is enabled by default on WKWebView, but you can verify or change the settings through the WKPreferences object:
swift
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
webView = WKWebView(frame: .zero, configuration: configuration)

Supported Modules

In WebView, we support the following modules:

  • Data Tracking
  • On-site Messaging
  • Card's
  • Web Personalization

Previous

Next

Was this article helpful?
0 out of 0 found this helpful

How can we improve this article?