For the complete documentation index, see llms.txt. This page is also available as Markdown.

Integración nativa

Implementación de iOS

El método de implementación sugerido es crear una vista web con el código de inicialización antes de implementar la función o funciones de puente entre la vista web y el código nativo. El código de muestra se puede encontrar a continuación.

import UIKit
import SwiftUI
import PlaygroundSupport
import WebKit
 
class MyViewController : UIViewController, WKUIDelegate, WKScriptMessageHandler {
    
    var webView: WKWebView!
    var embed = """
    <!DOCTYPE html>
      <html>
        <body>
          <div id="img-arena-event-centre" style="height:400px;width:100%;"></div>
 
          <script src="https://unpkg.com/@img-arena/front-row-seat@0.x/dist/index.umd.js"></script>
 
              <script>
                const { MessageTopics } = frontRowSeat.eventCentreUtils;
                const eventCentreInstance = frontRowSeat.eventCentre({
                  operator: "operatorId",
                  sport: "ufc",
                  targetModule: "full",
                  eventId: "668",
                  version: "4.1.1",
                  targetElementSelector: "#img-arena-event-centre",
                  language: "en"
                });
 
                eventCentreInstance.on(MessageTopics.CONTEXT_UPDATE, function (msg) {
                        // send message to native controls
                    window.webkit.messageHandlers.contextUpdate.postMessage(msg);
                });
              </script>
        </body>
      </html>
    """
    
    
    override func loadView() {
        let webConfiguration = WKWebViewConfiguration()
        webConfiguration.preferences.javaScriptEnabled = true
        webConfiguration.userContentController.add(self, name: "contextUpdate")
        
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self
        let view = webView
        
        self.view = view
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        webView.loadHTMLString(embed, baseURL: nil)
    }
    
    func userContentController(_ userContentController:
        WKUserContentController, didReceive message: WKScriptMessage) {
        
        if (message.name == "contextUpdate") {
            // handle update
            print(message.body)
        }
    }
}
 
PlaygroundPage.current.liveView = MyViewController()

Last updated

Was this helpful?