Передача данных в web-view
Если есть необходимость связать события отправляемые из SDK и JS-счëтчика, то необходимо добавить следующий код:
import WebKit
import TrackerTop100SDK
class WebViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Добавляем script после того как html загрузится
let userScript = WKUserScript(
source: TrackerTop100.getDataToWebView(),
injectionTime: .atDocumentEnd,
forMainFrameOnly: true
)
// Устанавлваем скрипт в конфигурацию загрузки webview
let userContentController = WKUserContentController()
userContentController.addUserScript(userScript)
let configuration = WKWebViewConfiguration()
configuration.userContentController = userContentController
let webView = WKWebView(frame: view.bounds, configuration: configuration)
//...
}
}
#import "WebViewController.h"
@import TrackerTop100SDK;
@interface WebViewController ()
@end
@implementation WebViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Добавляем script после того как html загрузится
WKUserScript *userScript = [[WKUserScript alloc] initWithSource: [TrackerTop100 getDataToWebView] injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
// Устанавлваем скрипт в конфигурацию загрузки webview
WKUserContentController *userContentController = [[WKUserContentController alloc] init];
[userContentController addUserScript: userScript];
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.userContentController = userContentController;
WKWebView *webView = [[WKWebView alloc] initWithFrame: self.view.bounds configuration: configuration];
//...
}
@end
Last updated