首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用SwiftUI 2.0创建WebView时无法从UIViewRepresentable创建视图

使用SwiftUI 2.0创建WebView时无法从UIViewRepresentable创建视图
EN

Stack Overflow用户
提问于 2021-01-29 20:54:28
回答 1查看 286关注 0票数 0

我正在尝试在Xcode2.0Xcode12.4中创建一个SwiftUI视图,但它太新了,我找不到好的示例来回答问题和最佳实践。对于下面的代码,我得到了以下错误。

类型“SwiftUIWebView”不符合协议“UIViewRepresentable”

此外,设置配置已更改,我无法正确启用.allowsContentJavaScript。尝试将其添加到"perfs“会触发一个错误,抱怨不喜欢Bool。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import SwiftUI
import WebKit

struct SwiftUIWebView: UIViewRepresentable {
    let url: URL?
    func makeUIView(context: Context) -> some WKWebView {
        let prefs = WKWebpagePreferences()
        let config = WKWebViewConfiguration()
        config.defaultWebpagePreferences = prefs
        return WKWebView(frame: .zero, configuration: config)   //frame CGRect
    }
    func updateUIView(_ uiView: WKWebView, context: Context) {
        guard let myURL = url else { return }
        let request = URLRequest(url: myURL)
        uiView.load(request)
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-29 22:23:12

从此行中删除some

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func makeUIView(context: Context) -> some WKWebView {

some是在处理泛型和不透明类型时使用的特定关键字(有关更多信息,请参阅此链接:What is the some keyword in Swift(UI)?)。在这种情况下,您不需要泛化WKWebView,因为您确切地知道它是什么。

可以通过执行以下操作来设置prefs.allowsContentJavaScript属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
prefs.allowsContentJavaScript = true
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65961567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文