在Objective-C
中,我们使用UIWebView
开发了一个应用程序。
其中,媒体的自动复制是通过以下来源实现的,
[self.webview setMediaPlaybackRequiresUserAction:NO];
从 UIWebView
更改为 WKWebView
时现在会出现错误。
No visible @interface for 'WKWebView' declares the selector 'setMediaPlaybackRequiresUserAction:'
我该如何解决? 如果你明白了,请告诉我。
最佳答案
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
关于ios - 我想用WKWebView加载时自动播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50286231/