开发者社区 问答 正文

WKWebView如何读取缩短URL?

1.我尝试过使用缩短URL插入WKWebView和loadRequest(例如:https://bit.ly.xxxxxx)起作用了。转到

WKNavigationActionPolicyAllow

和代表``` didReceiveServerRedirectForProvisionalNavigation

然后获得一个新的请求URL(```navigationAction.request.URL.absoluteString``` ) 
,这不是缩短URL。然后显示网页。好的!

2.如果我在当前的WKWebview中单击了一个链接,那么它什么也不会做!我查过了decidePolicyForNavigationAction
当我点击缩短URL的链接时,它会转到我的WKNavigationActionPolicyAllow,然后什么也不做.

展开
收起
游客5akardh5cojhg 2019-12-05 22:05:03 659 分享 版权
阿里云 AI 助理回答

从你的描述来看,你正在使用WKWebView在iOS应用中展示网页内容,并且已经成功处理了通过缩短URL(如bit.ly形式的链接)加载页面的场景。但是,当用户在已经加载的WKWebView中点击一个链接时,期望的页面跳转没有发生。

针对第二个问题,即WKWebView内点击链接无响应的情况,这里有几个可能的原因和解决办法:

  1. 确保代理方法正确实现:请确认WKNavigationDelegate的方法是否被正确定义并设置为WKWebView的代理。特别是decidePolicyForNavigationAction:decisionHandler:或更新后的Swift版本中的webView(_:decidePolicyFor:decisionHandler:)需要正确实现以允许内部导航请求。

  2. 检查decisionHandler的使用:在decidePolicyForNavigationAction方法中,你需要确保对于用户点击的链接调用decisionHandler并传入.allow来允许导航继续。例如,在Swift中可能是这样的:

    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
       if navigationAction.navigationType == .linkActivated {
           decisionHandler(.allow)
       } else {
           // 根据需要处理其他类型的导航
           decisionHandler(.allow) // 或者根据情况拒绝
       }
    }
    
  3. 重定向问题:有时候,WKWebView在处理重定向时可能会遇到问题。虽然你提到在初次加载缩短URL时重定向工作正常,但内部点击可能触发不同的行为。确保对所有类型的navigationTypes都做了适当的处理。

  4. Sandbox限制或权限问题:尽管不太常见,但有时App的沙盒环境或特定的权限设置也可能阻止WKWebView内的链接跳转。检查你的应用是否有相应的网络权限,并确保App Transport Security (ATS) 设置不会无意间阻止某些链接的加载。

  5. JavaScript交互:如果页面依赖于JavaScript进行导航,确保WKWebView启用了JavaScript执行。这是默认开启的,但确认一下总没有坏处:

    let configuration = WKWebViewConfiguration()
    configuration.userContentController.add(self, name: "scriptMessageHandler")
    webView = WKWebView(frame: .zero, configuration: configuration)
    webView.configuration.preferences.javaScriptEnabled = true
    
  6. 查看错误日志:利用Xcode的调试工具查看控制台输出,看是否有任何相关的错误信息或警告,这可能会提供解决问题的线索。

如果以上建议都不能解决问题,可能需要更详细的代码审查或者具体的错误信息来进一步诊断问题所在。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答标签:
问答地址: