首页
学习
活动
专区
工具
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.3K193

WKWebView使用与JS交互详细解读

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

3K70

iOSWKWebView交互使用总结

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

2.8K40

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.2K20

推送-远程通知推送教程

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

3.9K30

一个 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.2K10

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.8K61

绕过 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.6K20

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

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

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

3.4K40

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.1K40

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 等。下面简要说明一些常用头信息。

12910

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
领券