# 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()
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sportradar.com/ufc-5.0/ufc-5.0-latam-spanish/native-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
