问题标签 [wknavigationdelegate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wkwebview - 获取 WKWebView 的当前完整 URL
有没有办法让WKWebView
每个请求都加载完整的 URL?
仅适用于mainFrame
导航,不提供 URL 请求参数。
我如何获得完整的 URL,就像在UIWebViewDelegate
's
...在任何加载完成后都会调用它,您可以从webView
参数中获取完整的请求 URL。
很高兴WKWebView
'sURL
属性节省了提取 UI 友好的基本 URL 所需的工作,但我们无法获得完整的 URL,这是一个巨大的损失!
我试过使用
...但是与完成页面加载后UIWebView
的属性相比,它会为 URL 产生不同的结果。request
javascript - 从 Swift WKWebView 中的完成处理程序将 html 数据保存在变量中
我正在尝试从网站上抓取数据,而我想要的数据位于 span 标签中。到目前为止,我所做的是:
但是当我这样做时,我会得到零。如果我print(html)
代替str = html
我得到我想要的输出。
我在这里做错了什么?为什么我不能将该值存储在变量中?
ios - WKWebView 没有将内容滚动到映射的 HTML
我正在研究 WKWebView 以在 WKWebView 中呈现 HTML。
这个锚标记会将我的 WKWebView 推送到映射到它的内容。我的完整 HTML 是:
我处理链接按钮的代码如下:
当单击锚标记时,它应该滚动 WKWebview 到在 HTML 中映射到它的内容,这没有发生。
我不知道缺少什么我几乎尝试了所有方法,但它没有滚动到锚标记中的映射数据以查看 HTML,您可以将我的 HTML 粘贴到
请检查并让我知道我错过了什么。
先感谢您。:)
swift - 可可斯威夫特:错误评估JavaScript可选(“发生JavaScript异常”)
我正在使用网页加载 WKWebView,并且正在尝试执行 javascrip:
但我收到了这个错误:
为什么我会收到这个错误?,你们中的任何人都知道我做错了什么或解决这个问题的方法吗?
ios - 停止导航 WKWebview
这是我的情况:
我在 WKWebView 中有一个视图控制器。此 web 视图以页面“A”开始。在此页面中有一些链接(href),我希望其中一些链接必须在外部浏览器中打开。
出于这个原因,我设置了 WKWebView 委托:
我的问题是,如果我选择外部链接,外部浏览器会打开,但 webview 不会保留在页面 A 上,但它也会加载外部链接,而我希望它保留在页面 A 上。
我不知道为什么
ios - 如果我实现了decisionPolicyFor navigationAction,WKWebView 为空,如果我删除该函数,则正确加载
这是在 xcode 10.3,swift 5
我正在尝试使用 WKWebView 加载一些 Web 内容。我有一个只是 NSObject 的类,它实现了 WKNavigationDelegate 类。
- 我创建 Web 视图
- 设置导航委托
- 加载网页视图
如果我包含此功能:(允许任何内容)
该页面仅加载一个空的 html 正文,并且没有显示任何内容。此外,该函数似乎从未以这种方式调用。
如果我注释掉该功能,页面将正常加载。
我难住了!
我尝试将包含 webview 的类更改为 UIViewController,然后将其添加到主控制器。这样做,决策处理函数确实被调用,但我的 webview 仍然是空的。(它只要求关于:空白)
这是怎么发生的:我的主视图控制器有一个 NSObject 的实例,它做了以下简化:
ios - WKWebView 拦截本地文件请求
我的 iOS 11+ 应用程序中有一个 WKWebView,我需要从本地内存中的 HTML 加载自定义 HTML。我可以通过使用webView.loadHTMLString
or来实现这一点webview.load(data)
,它工作正常。
此 HTML 引用了一些必需的 .js/.css/.png 文件。对于普通的 Web URL 请求,WKWebView 会即时执行此操作,加载丢失的文件。但在这种情况下,我需要拦截这些请求,并提供文件内容,因为其中一些需要动态生成。因此,我需要服务的 .css 文件等实际上并不作为本地文件存在。
我认为这只是实现协议decidePolicyFor
方法的问题WKNavigationDelegate
,但由于某种原因,本地子请求不会触发它,那么我该如何实现呢?
我还尝试将 HTML 保存为本地临时文件并使用 加载它webView.load(URLRequest)
,但这也不会触发委托。如果它是一个 Web URL,它会触发正常。
ios - 无法使用 WKWebView 在 Safari 中打开外部链接
我正在从迁移UIWebView
到WKWebView
. 需要在WKWebView
所有内容中加载 HTML 内容工作正常,但问题是在单击任何链接后无法在外部 safari 浏览器中打开链接WKWebView
。我用下面的代码
班级
出口和WKWebView
变量
viewDidLoad
方法
用于加载 HTML 内容
决定政策
decidePolicyFor
方法应该调用但它没有执行我无法找到问题
ios - 当在 WKWebView 中加载链接时,我如何知道外部应用程序是否会打开?
我有一个 WKWebView,webview 将加载类似https://qr.payme.hsbc.com/2/XXXXYYYZZZ的链接。
加载链接时有两种可能的结果,
案例1是用户安装了Payme应用后会打开一个名为Payme的应用;案例 2 是当用户没有安装 Payme 应用程序时
,webview 将被重定向到静态页面https://payme.hsbc.com/ 。
我的问题是如何知道 Payme 应用程序是否已打开?
html - WKWebView 的 didFinish 委托方法接收回调的时间过长
我的 UITableViewCell 中有一个 WKWebView。我使用 HTML 字符串配置我的 webview,如下所示:
一旦 webview 完成加载,我希望在以下委托方法中接收回调,以便计算 webview 的内容大小。
在上述委托中接收回调需要很长时间。
请提出一种优化加载时间的方法。