WKWebView einrichten

Wenn in Ihrer iOS App WKWebView Webinhalte anzuzeigen, wird empfohlen, es so zu konfigurieren, dass Content optimal mit Anzeigen monetarisiert werden kann.

In dieser Anleitung erfahren Sie, wie Sie Informationen zur Konfiguration eines WKWebView -Objekt.

Webeinstellungen

Die WKWebView-Standardeinstellungen sind nicht für Anzeigen optimiert. Verwenden Sie WKWebViewConfiguration und WKWebView APIs, um Ihre Webansicht für die folgenden Ressourcen zu konfigurieren:

  • Inline-Wiedergabe
  • Automatische Videowiedergabe
  • Linkvorschau nicht zulassen

Swift

import WebKit

class ViewController: UIViewController {

  var webView: WKWebView!

  override func viewDidLoad() {
    super.viewDidLoad()

    // Initialize a WKWebViewConfiguration object.
    let webViewConfiguration = WKWebViewConfiguration()
    // Let HTML videos with a "playsinline" attribute play inline.
    webViewConfiguration.allowsInlineMediaPlayback = true
    // Let HTML videos with an "autoplay" attribute play automatically.
    webViewConfiguration.mediaTypesRequiringUserActionForPlayback = []

    // Initialize the WKWebView with your WKWebViewConfiguration object.
    webView = WKWebView(frame: view.frame, configuration: webViewConfiguration)

    // Links opened using link preview don't call web view delegates. Ensure
    // delegates are always called on clicks by disabling link preview.
    webView.allowsLinkPreviews = false
    view.addSubview(webView)
  }
}

Objective-C

@import WebKit;

#import "ViewController.h"

@interface ViewController ()

@property(nonatomic, strong) WKWebView *webView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  // Initialize a WKWebViewConfiguration object.
  WKWebViewConfiguration *webViewConfiguration = [[WKWebViewConfiguration alloc] init];
  // Let HTML videos with a "playsinline" attribute play inline.
  webViewConfiguration.allowsInlineMediaPlayback = YES;
  // Let HTML videos with an "autoplay" attribute play automatically.
  webViewConfiguration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;

  // Initialize the WKWebView with your WKWebViewConfiguration object.
  self.webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:webViewConfiguration];

  // Links opened using link preview don't call web view delegates. Ensure
  // delegates are always called on clicks by disabling link preview.
  self.webView.allowsLinkPreviews = NO;
  [self.view addSubview:self.webView];
}

Webansicht-Inhalte laden

Cookies und Seiten-URLs sind wichtig für die Monetarisierung von Webansichten und funktionieren ausschließlich. wie erwartet, wenn mit einem in Ihrem Netzwerk erstellen. Für eine optimale WKWebView Leistung empfehlen wir ausdrücklich, Webinhalte von einer netzwerkbasierten URL zu laden.

Swift

import WebKit

var webview: WKWebview!

class ViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()

    // Initialize a WKWebViewConfiguration object.
    let webViewConfiguration = WKWebViewConfiguration()
    // Let HTML videos with a "playsinline" attribute play inline.
    webViewConfiguration.allowsInlineMediaPlayback = true
    // Let HTML videos with an "autoplay" attribute play automatically.
    webViewConfiguration.mediaTypesRequiringUserActionForPlayback = []

    // Initialize the WKWebView with your WKWebViewConfiguration object.
    webView = WKWebView(frame: view.frame, configuration: webViewConfiguration)

    // Links opened using link preview don't call web view delegates. Ensure
    // delegates are always called on clicks by disabling link preview.
    webView.allowsLinkPreviews = false
    view.addSubview(webView)

    // Load the URL for optimized web view performance.
    guard let url = URL(string: "https://webview-api-for-ads-test.glitch.me") else { return }
    let request = URLRequest(url: url)
    webView.load(request)
  }
}

Objective-C

@import WebKit;

#import "ViewController.h"

@interface ViewController ()

@property(nonatomic, strong) WKWebView *webView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  // Initialize a WKWebViewConfiguration object.
  WKWebViewConfiguration *webViewConfiguration = [[WKWebViewConfiguration alloc] init];
  // Let HTML videos with a "playsinline" attribute play inline.
  webViewConfiguration.allowsInlineMediaPlayback = YES;
  // Let HTML videos with an "autoplay" attribute play automatically.
  webViewConfiguration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;

  // Initialize the WKWebView with your WKWebViewConfiguration object.
  self.webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:webViewConfiguration];

  // Links opened using link preview don't call web view delegates. Ensure
  // delegates are always called on clicks by disabling link preview.
  self.webView.allowsLinkPreviews = NO;
  [self.view addSubview:self.webview];

  // Load the URL for optimized web view performance.
  NSURL *url = [NSURL URLWithString:@"https://webview-api-for-ads-test.glitch.me"];
  NSURLRequest *request = [NSURLRequest requestWithURL:url];
  [webView loadRequest:request];
}

Webansicht testen

Während der App-Entwicklung empfehlen wir, diese Test-URL zu laden:

https://webview-api-for-ads-test.glitch.me#webview-settings-tests

überprüfen, ob diese Einstellungen die beabsichtigte Wirkung auf Anzeigen haben. Die Test-URL enthält Erfolgskriterien für eine vollständige Integration, wenn Folgendes beobachtet wird:

Einstellungen für die Webansicht

  • Eigene Cookies funktionieren
  • JavaScript aktiviert

Videoanzeige

  • Die Videoanzeige wird inline abgespielt und nicht im Vollbildmodus geöffnet. Spieler
  • Die Videoanzeige wird automatisch wiedergegeben, ohne auf die Wiedergabeschaltfläche zu klicken.
  • Die Videoanzeige kann wiederholt werden.

Ersetzen Sie nach Abschluss des Tests die Test-URL durch die URL der Webansicht. laden möchten.