这个网页音乐本来是自动播放的,用QQ打开这个链接测试过,会自动播放音乐,现在要用WkWebView来实现进入自动播放音乐
问题:
1、先看下,播放音乐的效果,这个音乐图标是旋转的
2、看图我们可以发现,点进去不会播放音乐
解决:
1、这是电脑端,可以这个 audio
这个节点的id
是media
,
我们可以利用js
来控制这个节点播放。
2、这是正常加载 html 的局部代码,默认是不播放图片的
- 代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// 初始化页面
[self setupView];
}
#pragma mark - 初始化页面
- (void)setupView
{
// 1、展示广告的网页
WKWebView *webView = [[WKWebView alloc] initWithFrame: self.view.bounds];
[self.view addSubview: webView];
// 2、设置代理
//webView.delegate = self;
// 3、设置请求路径
NSURL *url = [NSURL URLWithString: self.adBannerItem.url];
// 4、创建请求
NSURLRequest *request = [NSURLRequest requestWithURL: url];
// 5、加载请求
[webView loadRequest: request];
self.webView = webView;
}
-
效果图:
3、为webView
加上navigationDelegate
代理,并遵循WKNavigationDelegate
协议。
- 代理:
// 主要实现了涉及到导航跳转方面的回调方法
webView.navigationDelegate = self;
- 实现代理方法
#pragma mark - WKNavigationDelegate
#pragma mark 页面加载完成后调用
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
WTLogFunc;
// 获取 id = 'media' 的'audio'节点,并播放
[self.webView evaluateJavaScript: @"var audio = document.getElementById('media'); audio.play();" completionHandler: nil];
}
-
效果图片: