首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WKWebView检查URL是否有SSL的最好方法,并在文本字段中的url下面显示锁图标。

WKWebView是苹果公司推出的一种用于iOS应用程序中显示网页内容的组件。它是基于WebKit引擎的一部分,提供了更好的性能和功能支持。

要检查URL是否有SSL,可以使用WKWebView的代理方法webView(_:didReceiveServerRedirectForProvisionalNavigation:)webView(_:didStartProvisionalNavigation:)。在这些方法中,可以通过获取navigationResponse对象的response属性来检查URL的SSL证书信息。

以下是一个示例代码:

代码语言:swift
复制
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {
    var webView: WKWebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let configuration = WKWebViewConfiguration()
        webView = WKWebView(frame: view.bounds, configuration: configuration)
        webView.navigationDelegate = self
        view.addSubview(webView)
        
        if let url = URL(string: "https://example.com") {
            let request = URLRequest(url: url)
            webView.load(request)
        }
    }
    
    // WKNavigationDelegate methods
    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
        // 在开始加载页面时调用
        // 可以在这里检查URL的SSL证书信息
        if let url = webView.url, let serverTrust = webView.serverTrust {
            let isSSL = SecTrustEvaluateWithError(serverTrust, nil)
            if isSSL {
                print("URL has SSL")
                // 在文本字段中的url下面显示锁图标
                // 你可以通过修改界面来实现此功能
            }
        }
    }
    
    func webView(_ webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) {
        // 在接收到服务器重定向时调用
        // 可以在这里检查URL的SSL证书信息
        if let url = webView.url, let serverTrust = webView.serverTrust {
            let isSSL = SecTrustEvaluateWithError(serverTrust, nil)
            if isSSL {
                print("URL has SSL")
                // 在文本字段中的url下面显示锁图标
                // 你可以通过修改界面来实现此功能
            }
        }
    }
}

在上述代码中,我们创建了一个WKWebView实例,并设置了navigationDelegate为当前视图控制器。在didStartProvisionalNavigationdidReceiveServerRedirectForProvisionalNavigation方法中,我们可以获取到当前加载的URL和服务器的SSL证书信息。通过调用SecTrustEvaluateWithError方法,我们可以判断URL是否具有SSL证书。

要在文本字段中的URL下方显示锁图标,你可以使用自定义的文本字段或者在现有的文本字段下方添加一个UIImageView来显示锁图标。具体实现方式可以根据你的界面布局和需求来定制。

关于腾讯云相关产品和产品介绍链接地址,可以参考以下推荐:

  • SSL证书:腾讯云SSL证书服务提供了多种类型的SSL证书,保护网站和应用的安全通信。详情请参考腾讯云SSL证书
  • Web应用防火墙(WAF):腾讯云Web应用防火墙(WAF)可以帮助保护网站免受常见的Web攻击。详情请参考腾讯云Web应用防火墙(WAF)

请注意,以上推荐的腾讯云产品仅供参考,具体选择和使用需根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WKWebView详解

: 方法来加载web内容; 使用 stopLoading 方法来停止加载; 使用 loading 属性来判断网页是否正在加载; 使用 WKUIDelegate 协议来跟踪网页内容加载过程; ---...,这里一个简单准则就是用frame.request.URL.host属性来标识这个确认界面 确认界面应该只有两个按钮,典型就是确认和取消 显示一个JavaScript输入界面 - (void)webView...defaultText是在输入框展示默认文本 frameJavaScript进程发起这次调用 在输入界面被解除之后调用completionHandler来回调给页面,点击确定传输入框文本,取消传...nil 为了安全,实现这个方法时候需要注意到确认内容是一个特定网站指定,这里一个简单准则就是用frame.request.URL.host属性来标识这个确认界面 确认界面应该只有两个按钮(...桌面图标触发,会弹出一个或多个快速选择表单。

20.6K193

WKWebView使用与JS交互详细解读

看网上关于它博客也是许多了,从各个方面总结一下这个WKWebView看网上说它主要是为了和JS做好交互产生,我们也会相应尝试一下。就先从它基本说起!...WKWebView一个  estimatedProgress 属性,利用它来监听加载进度,下面的进度打印出来了,但具体进度条就没有写出来,你们可以自己写一个 UIProgressView 放在导航栏下面...URL包含了https://www.baidu.com/,所以页面是不能被加载,要是能加载就有下面的打印信息,注意和上面方法区分对比!...先看看 WKUIDelegate里面的代理方法都是用来做什么,我们一个一个解释这几个代理方法; // 创建方法,这个就不在多说了,重点放在下面几个 -(nullable WKWebView *)...-(void)webViewDidClose:(WKWebView *)webView { } 下面这三个方法根据方法前面的字面意思就能区分记住!

3.1K70
  • iOSWKWebView交互使用总结

    ,需要说明是由于我们使用是需要和JS进行交互webView,所以需要在ViewController声明两个代理WKNavigationDelegate,WKScriptMessageHandler...基本代理相关 常用: //开始加载 -(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *...限制用户选择以及长按操作 ---- 有时候,我们会遇到一个比较头疼问题,我们不想让用户长按选择或者弹窗,那么这时我们需要添加两行代码来禁止这一系列行为。...//WKWebview 禁止长按(超链接、图片、文本...)弹出效果 [self.webView evaluateJavaScript:@"document.documentElement.style.webkitTouchCallout...重点:JS交互 ---- WKWebView交互方法和之前UIWebView其实本质上没有什么太大差别,都是通过发送方法名找到对应方法执行对应操作。

    2.9K40

    iOS--React Native浏览器插件(内附Demo)

    方法打开浏览器,并在视图中显示,代码如下: //WebviewManager.m #import "WebviewManager.h" #import @interface...并在这个宏里面添加一个参数“WebviewPlugin”用来指定在 JavaScript 访问这个模块名字。 如果你不指定,默认就会使用这个 Objective-C 类名字。...URL规范检测 arguments字典是JavaScript调用方法传参用,arguments字典里面的具体字段可以和JavaScript约定好,打开浏览器url就是通过arguments字典传过来...,传过来url字段还不能直接使用,需要检测是否符合url规范,否则是不能正常打开网页。...根据传参打开浏览器 此浏览器插件支持打开自定义浏览器和打开默认浏览器,具体使用哪种方法打开浏览器,需要JavaScript通过arguments字典以字段形式传过来,这里就使用openType字段

    1.3K20

    WKWebView使用

    示例Demo:WKWebView使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及一些类 2、WKWebView涉及代理方法 3、网页内容加载进度条实现 4、JS...confirm是js的确定框,需要在block把用户选择情况传递进去 - (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage...prompt是js输入框 需要在block把用户输入信息传入 - (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt...,设置处理接收JS方法代理,代理遵守WKScriptMessageHandler,实现捕捉到JS消息回调方法,详情可以看第一步对这两个类介绍。...文本编辑偏好设置.png 详情请前往我Github:WKWebView使用 如果我WKWebView使用总结没帮到你,你也可以看看下面几篇文: https://www.jianshu.com/p

    2.9K61

    一个 Hybrid SDK 设计与实现

    组件需要完成以下功能: Header 左侧与右侧可配置,显示为文字或者图标(这里要求 Header 实现主流图标,并且也可由业务控制图标),并需要控制其点击回调 Header title 可设置为单标题或者主标题..., //如果设置了lefticon或者righticon,则显示icon //native会提供常用图标icon映射,如果找不到,便会去当前业务频道专用目录获取图标...◆ 账号系统设计 Webview 网页,账号登录与否由是否携带密钥 cookie 决定(不能保证密钥有效性)。...WKWebView 网络请求拦截 方法一(Native 侧): 原生 WKWebView 在独立于 app 进程之外进程执行网络请求,请求数据不经过主进程,因此在 WKWebView 上直接使用 NSURLProtocol...方法二(JS 侧): 通过 AJAX 请求 hook 方式,将网络请求信息代理到客户端本地。能拿到 WKWebView 里面的 post 请求信息,剩下就不是问题啦。

    1.3K10

    推送-远程通知推送教程

    .Badge 允许App在图标显示角标数字 .Sound 允许App播放声音 .Alert 允许App显示文本 UIUserNotificationCategory 是Set类型参数当前暂时传 nil...= .None { application.registerForRemoteNotifications() } } 在上面的方法,首先检查当前用户是否允许通知,如果允许直接调用...当接收到一个通知,就会显示一个包含”Breaking News!”文本提醒视图,并且有标准提醒音效。 “link_url”实际上是一个自定义字段。...这个字段可以是一个字符串,就像当前例子。或是是一个字典。如果是一个字典,可以是本地化文本或者通知其它部分。查看苹果文档所支持key。 badge。这是一个将被显示在应用图标数字。...如果你任何问题,你可以在下面的评论随意提问。

    4K30

    绕过 CSP 从而产生 UXSS 漏洞

    从上面的代码可以看出迭代链接和视频元素,并在返回之前将信息收集到 videoLinks 数组。...& vd.isVideoUrl(videoLink.url) vd.isVideoLinkAlreadyAdded 是一个简单检查,以查看该 URL 是否已记录在 vd.tabsData[tabId]...下一项检查要求 vd.isVideoUrl 函数返回 true,该函数代码如下: ? 这项检查相当简单。 它只是检查以确保 URL 包含 mp4,flv,mov 或 webm。...但是,它要求用户在我们恶意页面上单击扩展图标。 在构建漏洞利用时最好不要传达弱点存在,因此我们会尝试使其不需要用户交互。...在示例,要包含资源是 popup.html 页面,该页面通常仅在用户单击扩展程序图标显示。 通过 iframing 此页面以及之前 payload,我们一个无需用户交互漏洞利用: ?

    2.7K20

    我承认 IDEA 2021.3 有点强!

    然后,IDE 将把文本显示为初始提交消息。 预提交检查 为预提交检查配置配置文件 现在,在将变更提交到 VCS 之前,可以轻松选择代码检查配置文件。...点击齿轮图标显示提交选项,选中 Analyze code 复选框,点击 Choose profile,然后选择所需配置文件。您 IDE 会在提交前用它来检查代码。...HTTP 客户端 SSL 支持 如果将 SSL 客户端身份验证用于 https:// 协议,则可以在 HTTP 客户端配置 SSL 设置。...在打开对话框,输入网页地址,选择任意 DOM 元素,然后将其添加到下面的区域。您可以在那里更改元素语言或框架。...您可以从字段上下文菜单或值编辑器完成此操作。

    3.7K20

    HTTP基本原理

    举例来说,https://github.com/favicon.ico,这是 GitHub 网站图标链接,它是一个 URL,也是一个 URI,即有这样一个图标资源,我们用 URL/URI 来唯一指定了它访问方式...超文本英文名称叫做 Hypertext,我们在浏览器里面看到网页就是超文本解析而成,其网页源代码是一系列 HTML 代码,里面包含了一系列标签,如 img 显示图片,p 指定显示段落等,浏览器解析这些标签后便形成了我们平常看到网页...例如我们在 Chrome 浏览器里面打开任意一个页面,如淘宝首页,右键点击检查,或按下快捷键 F12 即可打开浏览器开发者工具,这时我们在 Elements 选项卡即可看到当前网页源代码,这些源代码都是超文本...这里显示为 200,代表 Response 是正常,通过状态码我们可以判断发送了 Request 之后是否得到了正常 Response。 第三列 Type,即 Request 请求文档类型。...GET 和 POST 请求方法有如下区别: * GET 方式请求参数是包含在 URL 里面的,数据可以在 URL 中看到,而 POST 请求 URL 不会包含这些数据,数据都是通过表单形式传输,会包含在

    1.3K81

    IntelliJ IDEA - 2022.2 正式发布!众多特性解读!

    用于突出显示检查增强配置 您现在可以配置检查在编辑器显示方式,而无需更改其严重性级别。...支持 Kotlin 内联函数 Kotlin 内联函数现在与其他函数一起显示在Flame Graph、Call Tree和Method List,允许您查看它们 CPU 时间并在需要时对其进行优化。...HTTP 客户端 UI/UX 改进 我们对 HTTP 客户端实施了一些 UI/UX 改进。首先,我们介绍了一种使用装订线图标选择运行环境便捷方法。...通过排水沟图标轻松导航 现在,您只需单击装订线图标即可轻松导航回页面元素。 来自 URL 页面对象命名 创建新页面对象文件时,向导现在提供了一个可选 URL 字段。...Scala 更好 Scala 3 支持 从 v2022.2 开始,IntelliJ IDEA 可以从.tasty文件读取匹配类型,正确解析它们,解析类型变量,将它们用作类型参数,支持检查,并将类型显示文本

    5.3K40

    我不得不承认 IDEA 2021.3 有点强!

    然后,IDE 将把文本显示为初始提交消息。 预提交检查 为预提交检查配置配置文件 现在,在将变更提交到 VCS 之前,可以轻松选择代码检查配置文件。...点击齿轮图标显示提交选项,选中 Analyze code 复选框,点击 Choose profile,然后选择所需配置文件。您 IDE 会在提交前用它来检查代码。...HTTP 客户端 SSL 支持 如果将 SSL 客户端身份验证用于 https:// 协议,则可以在 HTTP 客户端配置 SSL 设置。...在打开对话框,输入网页地址,选择任意 DOM 元素,然后将其添加到下面的区域。您可以在那里更改元素语言或框架。...您可以从字段上下文菜单或值编辑器完成此操作。

    3.6K40

    iOSWebKit框架应用与解析 原

    信息应用程序名称 iOS9后可用 config.applicationNameForUserAgent = @"HS"; 四、WKWebView属性和方法解析         下面列举了WKWebView...@property (nullable, nonatomic, readonly, copy) NSURL *URL; //网页是否正在加载 @property (nonatomic, readonly...1.JavaScript调用native方法         这种方式是由WKUserContentController注册,并在代理方法实现。...,例如加载,回退,前进,刷新等,在这个方法,必须执行decisionHandler()代码块,并将是否允许这个活动执行在block中进行传入 */ /* WKNavigationAction是网页动作抽象化...-(void)webViewDidClose:(WKWebView *)webView{ } //下面这些方法是交互JavaScript方法 //JavaScript调用alert方法后回调方法

    1.9K40

    Python爬虫http基本原理

    即有这样一个图标资源,我们用 URL/URI 来唯一指定了它访问方式,这其中包括了访问协议 https、访问路径(即根目录)和资源名称 favicon.ico。...如果要爬取这样站点,就需要设置忽略证书选项,否则会提示 SSL 链接错误。 2.1.4 HTTP 请求过程 我们在浏览器输入一个 URL,回车之后便会在浏览器中观察到页面内容。...请求方法 常见请求方法两种:GET 和 POST。 在浏览器中直接输入 URL 并回车,这便发起了一个 GET 请求,请求参数会直接包含到 URL 里。...一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用 GET 方式请求的话,密码就会暴露在 URL 里面,造成密码泄露,所以这里最好以 POST 方式发送。...请求头 请求头,用来说明服务器要使用附加信息,比较重要信息 Cookie、Referer、User-Agent 等。下面简要说明一些常用头信息。

    15010
    领券