MoEngageInAppWebView
@objc
@MainActor
public class MoEngageInAppWebView : UIView
extension MoEngageInAppWebView: WKNavigationDelegate
extension MoEngageInAppWebView: WKScriptMessageHandler
extension MoEngageInAppWebView: WKUIDelegate
Custom WebView implementation for InApp HTML messages
Handles JavaScript bridge communication, HTML loading, and WebView lifecycle.
Key responsibilities:
- Configure WKWebView with JavaScript bridge for native-web communication
- Load HTML content from file system or string
- Handle script messages from JavaScript and route to action handlers
- Present JavaScript dialogs (alert, confirm, prompt)
- Manage WebView lifecycle and memory cleanup
-
The underlying WKWebView instance
Declaration
Swift
@objc @MainActor public var webView: WKWebView?
-
Initialize WebView with InApp payload
Declaration
Swift
@objc @MainActor public init(withInAppPayload payload: MoEngageInAppViewPayload)Parameters
payloadThe InApp view payload containing campaign data and HTML content
-
Declaration
Swift
@MainActor public override init(frame: CGRect)
-
Initialize and configure WKWebViewConfiguration with JavaScript bridge
Declaration
Swift
@objc @MainActor public func initializeWebConfiguration() -> WKWebViewConfigurationReturn Value
Configured WKWebViewConfiguration instance
-
Set up the WebView by adding it as a subview and applying styles
Declaration
Swift
@objc @MainActor public func setUpWebView()
-
Load HTML content into WebView Attempts to load from file system if assets folder exists, otherwise loads from string
Declaration
Swift
@objc @MainActor public func loadHTMLToWebView(withCompletionHandler completionHandler: @escaping WebViewCompletionHandler)Parameters
completionHandlerCompletion handler called with success/failure status
-
Add JavaScript bridge to existing WebView configuration This method can be called to re-add the bridge if needed
Declaration
Swift
@objc @MainActor public func addJSBridge()
-
Declaration
Swift
@MainActor public override func removeFromSuperview()
-
Declaration
Swift
@MainActor public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) -
Declaration
Swift
@MainActor public func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) -
Declaration
Swift
@MainActor public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
-
Handle script messages from JavaScript Parses action types and routes to appropriate action handlers
Declaration
Swift
@MainActor public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage)
-
Handle JavaScript alert dialogs
Declaration
Swift
@MainActor public func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) -
Handle JavaScript confirm dialogs
Declaration
Swift
@MainActor public func webView(_ webView: WKWebView, runJavaScriptConfirmPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (Bool) -> Void) -
Handle JavaScript prompt dialogs
Declaration
Swift
@MainActor public func webView( _ webView: WKWebView, runJavaScriptTextInputPanelWithPrompt prompt: String, defaultText: String?, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (String?) -> Void )