iOS WKWebView 透明背景问题

3

我正在将一些代码从UIWebView迁移到iOS项目上的WKWebView。目前,我正在尝试使wkwebview透明,但似乎功能不起作用。在UIWebView上,我可以通过以下方式实现:

self.opaque = NO;  
self.backgroundColor = [UIColor clearColor];  

通过样式设置html页面为透明,可以让我看到底层的视图内容。但是,如果我在WKWebView上尝试相同的代码,则html页面的背景不会变成透明。我在谷歌上搜索过,似乎在MacOS X上有解决方法,但是我找不到iOS的解决方案。这是在UIWebView上实现透明度的方法(参考链接:如何制作透明的UIWebView)。请问是否有任何想法,能否实现呢?谢谢。

尝试将 alpha 设置为 0。这将降低不透明度。 - SagarU
更改视图的alpha值将影响wkWebview上的所有组件。我只想让背景透明。 - RosaK
2个回答

8
您可以尝试以下代码片段:
webView.opaque = false
webView.backgroundColor = UIColor.clearColor()
webView.scrollView.backgroundColor = UIColor.clearColor()

你确定加载的HTML具有“透明”背景吗? - ystack
但不是WKWebView,看起来我暂时得回到使用UIWebView了。 - RosaK
在 WKWebView 上对我有效。 - Shaheen Ghiassy
webView.backgroundColor = [UIColor clearColor]; webView.scrollView.backgroundColor = [UIColor clearColor];``` 这段代码是使用Objective-C编写的。 - Johnny

4
这就是我们应用程序的工作原理 - 我们依赖于透明度。我们使用以下代码使WkWebView变为透明:
_primaryWebView = [[WKWebView alloc] initWithFrame:frame configuration:theConfiguration];
_primaryWebView.opaque = false;
_primaryWebView.backgroundColor = [UIColor clearColor];

我们的网页内容托管在WkWebView中,具有透明的背景。因此,在我们想看到原生内容的页面区域中,我们会放置大小适当、透明背景的DIV元素。这样可以轻松地将HTML和本地iOS内容组合在一起。

你好 Chris,能否提供一个例子?因为我还是无法让它工作。 - RosaK
你好 Chris,能否提供一个 DIV 元素大小设置正确的示例?我仍然无法让它正常工作。在我的 HTML 代码中,我使用 <style> body { background-color:rgba(255,0,0,0.3) } 设置背景颜色,并以完全相同的方式创建 wkWebView,但它仍然不透明。相同的 HTML 页面和设置在 UIWebView 上可以正常工作。 - RosaK
谢谢,我已经开始了一个新项目,现在wkwebview是透明的。这一定是我故事板中的设置问题。 - RosaK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接