Articles on: Publishing & Integration
This article is also available in:

Integrate Drimify using Webview

How to Integrate Drimify Experiences into Your Mobile App Using WebView


You can easily embed your Drimify experiences (such as games, quizzes, and interactive journeys) into your mobile app using a WebView. This allows users to access your branded, responsive experiences without leaving your app.


This guide covers:


  • Prerequisites
  • How to integrate WebViews on Android & iOS
  • Best practices
  • Optional advanced integrations
  • Support for deep links in CTAs


Prerequisites


Before embedding a Drimify experience, make sure you have:


  • A published Drimify experience link, e.g., https://apps.drimify.com/XBs15jKF/
  • A method for collecting or passing a user identifier (e.g., email, phone, or session ID)
  • A mobile app (iOS/Android) capable of rendering a WebView


Android Integration (WebView)


Here's how to load a Drimify experience in an Android WebView:


import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;

public class DrimifyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webView = new WebView(this);
setContentView(webView);

webView.setWebViewClient(new WebViewClient());
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);

// Load the experience URL (with optional session_id)
String sessionId = "user_abc_123"; // Replace with actual ID
String url = "https://apps.drimify.com/XBs15jKF/?session_id=" + sessionId;
webView.loadUrl(url);
}
}


iOS Integration (WKWebView)


To embed on iOS, use WKWebView with JavaScript enabled:


import UIKit
import WebKit

class DrimifyViewController: UIViewController {
var webView: WKWebView!

override func viewDidLoad() {
super.viewDidLoad()

let config = WKWebViewConfiguration()
config.preferences.javaScriptEnabled = true

webView = WKWebView(frame: self.view.bounds, configuration: config)
self.view.addSubview(webView)

let sessionId = "user_abc_123" // Replace with actual ID
let url = URL(string: "https://apps.drimify.com/XBs15jKF/?session_id=\(sessionId)")!
webView.load(URLRequest(url: url))
}
}


User Identification & Session Management


To track users and resume sessions, use:


  • Start screen data entry: Collect identifiers like email or phone.
  • Intermediate data collection forms: Enable richer forms before access.
  • session_uid parameter: Append to the URL (e.g., ?session_uid=abc123).
  • Full session management guide: Drimify Help: Session Unique ID



Drimify experiences can include deep links in CTAs (Call-to-Action buttons) within the game. This means that users can be directed to specific pages or actions within your mobile app after completing certain steps in the Drimify experience. For example, a "Finish" button within a game can be set up to link directly to a product page or a special offer within your app. The deep link supports seamless navigation between the Drimify experience and your app’s content. To implement this, ensure that your app has the relevant deep link handlers configured to respond to specific URLs or actions.


Best Practices


  • Ensure JavaScript is enabled in the WebView.
  • Enable DOM storage for a smoother experience.
  • Do not disable JavaScript, or block scripts like Angular: Some WebView settings may disable JavaScript or block essential libraries (like Angular), which can prevent the Drimify experience from working as expected.
  • Drimify experiences are fully mobile-first and responsive.


Advanced Event Integration (Optional)


If you need to:


  • Track experience completion
  • Retrieve scores
  • Customise behaviour


Use Drimify’s HTML integration API and listen for events via JavaScript inside the WebView.


Full guide: Drimify Advanced HTML API Integration


Note: This requires injecting JavaScript and handling messages between the WebView and the app.



Need Help?


If you have issues with session IDs, WebView rendering, deep linking, or other integration questions, please contact us.

Updated on: 10/06/2025

Was this article helpful?

Share your feedback

Cancel

Thank you!