我正在构建一个浏览器。
webview具有mainframeURL和accessibilityURL等功能列表。
我还想弄清楚如何通过这样做来获得更新链接:
@IBOutlet weak var webview: WebView!
func webViewDidFinishLoad(_ webView : WebView) {
let url = self.webview.mainFrameURL
if url == nil {
print("http://google.com/")
}
else {
print(url )
}
}
我想知道如何从WebView访问网站的下载按钮。
答案 0 :(得分:0)
如果用户点击了链接,webView(_:decidePolicyForNavigationAction:request:frame:decisionListener:)
将调用WebView的WebPolicyDelegate
的委托方法。您可以在此处理下载。
或者,如果您可以访问下载按钮"意味着获取一个按钮元素本身,你可以挖掘DOMElement
树:
extension WebView {
var rootElement: DOMElement {
return self.mainFrame.domDocument.documentElement
}
}
答案 1 :(得分:0)
我试图以这种方式实施。
func webView( _ webView: WebView!,
decidePolicyForNavigationAction actionInformation: [AnyHashable : Any]!,
request: URLRequest!,
frame: WebFrame!,
decisionListener listener: WebPolicyDecisionListener!){
webView.stringByEvaluatingJavaScript(from: "document.getElementById('Download').click()")
llet url = request.url!.absoluteString
// I need to get the url link
print( url)
}
override func viewDidLoad() {
super.viewDidLoad()
/// how can I implement the function to make it work ?
self.webView(NSwebView, decidePolicyForNavigationAction: nil, request: nil, frame: nil, decisionListener: nil)
}