WKwebview,js调用用Swift函数播放声音

Posted

技术标签:

【中文标题】WKwebview,js调用用Swift函数播放声音【英文标题】:WKwebview, js call to play an sound with Swift function 【发布时间】:2017-09-05 16:11:36 【问题描述】:

我想构建一个通过 javascript 调用混合播放音效的函数。

问题

在 WKWebView 中,我们无法控制声音与 Spotify 等音乐应用程序混合。

想法是有一个小功能 快速“监听” js 调用。因此,当我调用 js 函数时,应用会播放与其他背景音乐混合的音效。

请帮忙

【问题讨论】:

【参考方案1】:

如果我理解正确的话,你的 JS 文件中需要有函数,它不仅包含你的主要功能,而且还调用了这个小代码:

...
if(window.webkit)
   window.webkit.messageHandlers["scriptHandler"].postMessage("ShouldPlaySound");

然后使用 WKScriptMessageHandler 扩展您的 swift 控制器。将webView.navigationDelegate设置为这个控制器,并在这个控制器内部创建函数:

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) 

    let messageBody:String = message.body as! String
    if(messageBody == "ShouldPlaySound")
        // Play your sound
    

【讨论】:

以上是关于WKwebview,js调用用Swift函数播放声音的主要内容,如果未能解决你的问题,请参考以下文章

如何从 WKWebView Swift 调用这个 javascript 函数?

WKWebView不显示提示框(Swift)

iOS Swift5.0 WKWebView使用JS与Swift交互

iOS WKWebView 退出后停止播放音频/视频

如何在 WKWebview 中添加观察者以播放和暂停音频文件的操作?

在 Swift 中使用 JS 隐藏 WKWebView 集合元素