ios - 我想用WKWebView加载时自动播放

标签 ios objective-c media wkwebview

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/

相关文章:

android - 哪种AudioEncoder编解码器最适合Android上最高质量的音频录制

android - MP3 文件格式 详细信息

django - 将文件链接到 django 上的 url

iPhone 3D 指南针

ios - objc 运行时本身何时加载?谁叫它加载?

iOS : Touch Id is not shown when AppDelegate's open url is invoked

ios - 在多个 View Controller 中使用相同的变量

iphone - 如何显示从 RSS 源获取的可浏览图像列表?

iphone - 为东部时区的 future 日期设置本地通知

ios - 当我返回 TableViewController 时出错(快速)