小编sid*_*bob的帖子

WKWebView 在后台应用程序时停止音频

我有一个正在播放 HTML5 视频的 WKWebView。当我单击主页按钮并且应用程序进入后台时,我仍然可以听到音频播放。如何暂停 HTML 5 视频以停止播放背景音频。我尝试在应用程序进入后台时加载一个空白页面,这可以正常工作,

let url = URL(string: "about:blank")
let request = URLRequest(url:url!)
self.webView.load(request) 
Run Code Online (Sandbox Code Playgroud)

但我希望能够在用户从后台返回时在同一点启动视频,因此这不是一个可行的解决方案,因为当我备份打开应用程序时它只是加载空白页面。

html5-video ios swift wkwebview

6
推荐指数
1
解决办法
5104
查看次数

在页面加载时将 javascript 函数注入到 WebView 中

我试图在页面加载之前将全局 JavaScript 函数注入到 Web 视图中。我有一个名为testJS我正在注入的函数。在我的 WebViewClient 中,我正在执行以下操作

private String getJS() {
    return "javascript:function testJS() { return { test: 'Hello World' };}";
}

 @Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
    view.loadUrl(getJS());
}
Run Code Online (Sandbox Code Playgroud)

当我检查页面时,window.testJS未定义。

如果我执行以下操作,window.testJS网络视图中具有正确的功能,但它加载得不够早,因此无法正常工作。

@Override
public void onPageFinished(WebView view, String url) {
    view.loadUrl(getJS());
}
Run Code Online (Sandbox Code Playgroud)

在 iOS 中,我可以通过注入脚本执行相同的操作atDocumentStart,并且它按照我期望的方式工作。

let userScript = WKUserScript(
        source: scriptContent!,
        injectionTime: WKUserScriptInjectionTime.atDocumentStart,
        forMainFrameOnly: false)
contentController.addUserScript(userScript) 
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以在 android WebView 中实现此目的?它适用于PageFinished,但不适用于PageStarted。

javascript android webview

5
推荐指数
1
解决办法
2069
查看次数

标签 统计

android ×1

html5-video ×1

ios ×1

javascript ×1

swift ×1

webview ×1

wkwebview ×1