美文网首页
WKWebView调用js播放audio音频

WKWebView调用js播放audio音频

作者: 耿杰 | 来源:发表于2016-01-23 10:34 被阅读3718次

这个网页音乐本来是自动播放的,用QQ打开这个链接测试过,会自动播放音乐,现在要用WkWebView来实现进入自动播放音乐

问题:

1、先看下,播放音乐的效果,这个音乐图标是旋转的

2.gif

2、看图我们可以发现,点进去不会播放音乐

解决:

1、这是电脑端,可以这个 audio这个节点的idmedia,

我们可以利用js来控制这个节点播放。

Snip20160123_1.png

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; 
}
  • 效果图:


    1.gif

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];
}

  • 效果图片:


    3.gif

相关文章

网友评论

      本文标题:WKWebView调用js播放audio音频

      本文链接:https://www.haomeiwen.com/subject/zkrrkttx.html