Я хочу выполнить автоматическое воспроизведение при загрузке с WKWebView - PullRequest
0 голосов
/ 11 мая 2018

В Objective-C мы разработали приложение, используя UIWebView. Среди них автоматическое воспроизведение носителей было реализовано со следующими источниками,

[self.webview setMediaPlaybackRequiresUserAction:NO];

Теперь появляется ошибка при изменении с UIWebView на WKWebView.

Нет видимого @interface для 'WKWebView' объявляет селектор 'SetMediaPlaybackRequiresUserAction:'

Как я могу это исправить? Пожалуйста, скажите мне, если вы понимаете.

1 Ответ

0 голосов
/ 11 мая 2018

WKWebView setMediaPlaybackRequiresUserAction устарела, поэтому вам нужно заменить его на WKWebViewConfiguration mediaTypesRequiringUserActionForPlayback, как показано ниже.

WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
theConfiguration.mediaTypesRequiringUserActionForPlayback = false;

Вы не можете добавить WKWebView непосредственно в ваш ViewController, вам нужно добавить его программно, как показано ниже.

WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
theConfiguration.mediaTypesRequiringUserActionForPlayback = true;
webView.navigationDelegate = self;
NSURL *nsurl=[NSURL URLWithString:@"http://www.apple.com"];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[webView loadRequest:nsrequest];
[self.view addSubview:webView];

Использовать код выше или ниже

Если вы хотите изменить кадр, чем использовать ниже, вотполный пример кода.

Файл ViewController.h

#import <WebKit/WebKit.h>

@interface ViewController : UIViewController

@property(strong,nonatomic) WKWebView *webView;
@property (strong, nonatomic) NSString *productURL;

@end

Файл ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end


@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.productURL = @"http://www.URL YOU WANT TO VIEW GOES HERE";

    NSURL *url = [NSURL URLWithString:self.productURL];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
    theConfiguration.mediaTypesRequiringUserActionForPlayback = false;
    _webView = [[WKWebView alloc] initWithFrame:self.view.frame];  
    [_webView loadRequest:request];
    _webView.frame = CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
    [self.view addSubview:_webView];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
...