gpt4 book ai didi

ios - 在没有 API 的情况下快速显示网页内容

转载 作者:可可西里 更新时间:2023-11-01 01:07:35 27 4
gpt4 key购买 nike

概览

我的一个 friend 希望我创建一个 iOS 应用程序来显示他的网页,通过类似 WKWebView 的东西,并有一个本地菜单来导航到他网站上的每个页面。本质上,目的是帮助 friend ,同时提高 iOS 开发水平。我意识到最好的方法是设置一个 API,但我的 friend 不愿意完成这些额外的工作,并希望以这种方式完成。

挑战

我开始创建我的应用程序,方法是创建添加一个 WKWebView 到我的 View 并加载具有多个页面的网站(在本例中为 Google)。设置如下:

class ViewController: UIViewController {

var webKit: WKWebView = WKWebView()
@IBOutlet var mainView: UIView!



override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let myURL = URL(string:"https://www.google.com")
let myRequest = URLRequest(url: myURL!)
setConfiguration()
webKit.load(myRequest)

}

func setConfiguration() {
webKit.scrollView.isScrollEnabled = false
let configuration = WKWebViewConfiguration()
webKit = WKWebView(frame: view.frame, configuration: configuration)
webKit.navigationDelegate = self as? WKNavigationDelegate
view.addSubview(webKit)
}


}

如您所料,它成功加载了网页。但是,我面临着弄清楚如何从可折叠菜单和/或 UITableView 之类的东西加载指向 WebView 的新链接的挑战。

问题

这可行吗?我可以使用 UITableView 之类的东西(比如说,每个单元格中都有一个可点击的链接)来实现这个目的吗?如果没有,考虑到上述条款,解决此问题的最佳方法是什么。

最佳答案

实现 WKNavigation 委托(delegate)方法(在 WKWebView 上设置导航委托(delegate))并将几个箭头按钮链接到 goForward 和 goBack。在您的 tableview 上,只需存储 URL 的字符串。选择后,您将加载网页。

您还需要这两种方法来允许导航工作。

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
decisionHandler(.allow)
}
func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
decisionHandler(.allow)
}

最后只需将以下内容添加到您的 info.plist

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

顺便说一句 - 您需要将 URL 移动到类范围并将其设置在一个简单的函数中,该函数使用参数更改 URL。制作另一个单独的函数来加载页面。根据需要调用。

关于ios - 在没有 API 的情况下快速显示网页内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54369346/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com