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

如何打开已经在WebView中的WKWebView的外部链接?

在打开已经在WebView中的WKWebView的外部链接之前,我们首先需要了解一些相关概念。

  1. WebView和WKWebView: WebView是一个用于在应用程序中显示网页内容的组件,而WKWebView是苹果在iOS 8及以上版本中引入的一种新的Web浏览器控件,相比于旧版WebView,WKWebView具有更快的加载速度、更低的内存占用和更强大的功能。
  2. 外部链接: 外部链接指的是在WebView中打开的网页中的链接,如果这些链接指向的是应用程序外的网页,即需要在浏览器中打开,而不是在WebView中加载。

现在来回答问题:如何打开已经在WebView中的WKWebView的外部链接?

要实现这个功能,可以通过在WKWebView的导航代理方法中监听链接的点击事件,并进行相应的处理。具体步骤如下:

  1. 设置WKWebView的导航代理:
  2. 设置WKWebView的导航代理:
  3. 遵循WKNavigationDelegate协议,并实现对应的代理方法:
  4. 遵循WKNavigationDelegate协议,并实现对应的代理方法:
  5. 在这段代码中,我们首先判断点击的链接是否为外部链接(通过判断targetFrame是否为nil来判断),然后再判断是否可以通过应用程序打开该链接。如果可以打开,则使用UIApplication的open方法打开链接,并取消WKWebView继续加载该链接;如果不能打开,则继续加载链接。

需要注意的是,上述代码中使用了UIApplication的open方法来打开链接。在实际开发中,你可以根据需求选择合适的方式来打开链接,比如使用SafariViewController来打开链接。

这是一个简单的处理方式,可以实现在WKWebView中打开外部链接的功能。至于具体的产品推荐和链接地址,由于不能提及特定的云计算品牌商,请参考相关文档和开发者资源,来选择合适的产品和进行进一步的开发。

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

相关·内容

  • Hybrid App 应用 开发 9 个必备知识点复习(WebView 调试 等)

    状态; 出现所需数据; webview1 当 App 首次打开时,默认是并不初始化浏览器内核;只有当创建 WebView 实例时候,才会创建 WebView 基础框架。...所以与浏览器不同,App 打开 WebView 第一步并不是建立连接,而是启动浏览器内核。...这种方法可以比较有效减少 WebView 在App首次打开时间。当用户访问页面时,不需要初始化 WebView 时间。 当然这也带来了一些问题,包括: 额外内存消耗。...如果你需要在 WebView 打开链接或者你打开页面带有 flash,获得你 WebView 想弹出一个 dialog ,都会导致从 ApplicationContext 到 ActivityContext...如果调试是 H5 页面,可以直接在手机 Safari浏览器 打开直接调试。 下面开始说说在 Mac 上如何调试: 1.

    3.1K00

    【Hybrid】288- Hybrid App 应用开发 9 个必备知识点复习

    所以与浏览器不同,App 打开 WebView 第一步并不是建立连接,而是启动浏览器内核。...这种方法可以比较有效减少 WebView 在App首次打开时间。当用户访问页面时,不需要初始化 WebView 时间。 当然这也带来了一些问题,包括: 额外内存消耗。...如果你需要在 WebView 打开链接或者你打开页面带有 flash,获得你 WebView 想弹出一个 dialog ,都会导致从 ApplicationContext 到 ActivityContext...1.4电脑端远程 DebugGap 将检测即将到来客户端,开发人员可以单击每个客户端进行调试。 六、在 iOS 平台下如何调试 WebView?...如果调试是 H5 页面,可以直接在手机 Safari浏览器 打开直接调试。 下面开始说说在 Mac 上如何调试: 1.

    2.3K20

    Hybrid App 应用开发 9 个必备知识点复习

    所以与浏览器不同,App 打开 WebView 第一步并不是建立连接,而是启动浏览器内核。...这种方法可以比较有效减少 WebView 在App首次打开时间。当用户访问页面时,不需要初始化 WebView 时间。 当然这也带来了一些问题,包括: 额外内存消耗。...如果你需要在 WebView 打开链接或者你打开页面带有 flash,获得你 WebView 想弹出一个 dialog ,都会导致从 ApplicationContext 到 ActivityContext...1.4电脑端远程 DebugGap 将检测即将到来客户端,开发人员可以单击每个客户端进行调试。 六、在 iOS 平台下如何调试 WebView?...如果调试是 H5 页面,可以直接在手机 Safari浏览器 打开直接调试。 下面开始说说在 Mac 上如何调试: 1.

    2.7K20

    ​# iOS WKWebView适配(基础篇)

    webview可以指定从什么池子里打开,一般用默认或者指定一个单例WKProcessPool就行了 applicationNameForUserAgent 可以指定userAgentapplication...整个生命周期代理方法,详细见"二、生命周期方法" 二、生命周期方法(WKNavigationDelegate) 1.请求前决定是否要跳转 用户点击网页上链接打开新页面时,调用。...]; 5.离线资源包一点思考 利用离线加载这一特性,我们可以通过服务端资源打包成本地资源包(zip包),通过服务器比对方式下载资源包,解压后放在本地指定沙盒目录,随后通过wkwebview加载本地方式打开页面...对于资源包要求 前后端分离(目前前端基本如此) 资源包加载需要相对路径,大部分在线资源都是通过cdn如何通过cdn去转换成资源包并打包进来,也是一个挑战,或者直接用cdn包也是可以 要考虑降级策略...,如果加载失败,资源包出现问题,如何快速替换最新资源包或者回滚。

    3.8K30

    Hybrid App 应用开发 9 个必备知识点复习

    所以与浏览器不同,App 打开 WebView 第一步并不是建立连接,而是启动浏览器内核。...这种方法可以比较有效减少 WebView 在App首次打开时间。当用户访问页面时,不需要初始化 WebView 时间。 当然这也带来了一些问题,包括: 额外内存消耗。...如果你需要在 WebView 打开链接或者你打开页面带有 flash,获得你 WebView 想弹出一个 dialog ,都会导致从 ApplicationContext 到 ActivityContext...1.4电脑端远程 DebugGap 将检测即将到来客户端,开发人员可以单击每个客户端进行调试。 六、在 iOS 平台下如何调试 WebView?...如果调试是 H5 页面,可以直接在手机 Safari浏览器 打开直接调试。 下面开始说说在 Mac 上如何调试: 1.

    2.3K30

    iOS防止在WKWebView打开Universal Link

    Universal Links 是标准 HTTP 或 HTTPS 链接,因此既适用于网站,也适用于应用程序。 如果未安装您应用程序,则系统会在 Safari 打开URL,以使您网站能够处理它。...Https 域名根目录下放这个文件apple-app-association,不带任何后缀 第一章节先来看看如何防止在WKWebView打开Universal Link,如果你对如何获取Universal...Link感兴趣可看第二章节iOS 创建 Universal Links I 、防止在WKWebView打开Universal Link demo下载地址:https://download.csdn.net.../download/u011018979/21361507 1.1 防止在WKWebView打开Universal Link原理: 防止在WKWebView打开Universal Link原理:...在WKNavigationDelegate协议方法- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction

    3K30

    WKWebView 白屏问题

    1、WKWebView 自诩拥有更快加载速度,更低内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering 在其它进程执行。...初次适配 WKWebView 时候,我们也惊讶于打开 WKWebView 后,App 进程内存消耗反而大幅下降,但是仔细观察会发现,Other Process 内存占用会增加。...在 WKWebView 中加载下面的测试链接可以稳定重现白屏现象: http://people.mozilla.org/~rnewman/fennec/mem.html 这个时候 WKWebView.URL...在WKWebView白屏时候,另一种现象是 webView.titile 会被置空, 因此,可以在 viewWillAppear 时候检测 webView.title 是否为空来 reload 页面...综合以上两种方法可以解决绝大多数白屏问题。 参考链接:腾讯Bugly

    4.4K20

    http:blog.csdn.netu010105969articledetails53541088

    本文链接:https://blog.csdn.net/u010105969/article/details/101682356 iOS开发WKWebView与JS交互 之前已经写过一个篇OC与JS...如果点击第四个conform按钮会调用方法: // 确认框 (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage...注意:在利用UIWebView展示网页时候我们如果要想与JS进行交互那么我们就得获取JS代码方法名,而我们在使用WKWebView时候就不用了。...dic[@“body”]; NSLog(@“urlStr:%@”, urlStr); if ([message.nameisEqualToString:@“AppModel”]) { // 打开外部链接...如何改变文本样式 强调文本 强调文本 加粗文本 加粗文本 标记文本 删除文本 引用文本 H2O is是液体。 210 运算结果是 1024. 插入链接与图片 链接: link. 图片: ?

    1.6K30

    WKWebView 那些坑

    导语 WKWebView 是苹果在 WWDC 2014 上推出新一代 webView 组件,用以替代 UIKit 笨重难用、内存泄漏 UIWebView。...简单适配方法本文不再赘述,主要来说说适配 WKWebView 过程填过坑以及善待解决技术难题。...初次适配 WKWebView 时候,我们也惊讶于打开 WKWebView 后,App 进程内存消耗反而大幅下降,但是仔细观察会发现,Other Process 内存占用会增加。...fe39539b83d28751e86077b173abd5b7872ce3f9/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm#L61-L88 (复制链接到浏览器打开...id=138169 (复制链接到浏览器打开) 因此,如果通过 registerSchemeForCustomProtocol 注册了 http(s) scheme, 那么由 WKWebView 发起所有

    4.5K130

    WKWebView详解

    从iOS 8.0和OS X 10.10开始,建议使WKWebView在应用程序展示web内容,建议不要使用UIWebView或WebView。...一个记录 返回一个新WKNavigation对象 如果已经在当前记录,或者没有找到,则会返回nil 加载一个请求 - (WKNavigation *)loadRequest:(NSURLRequest...WebView用户界面通过实现这个协议来控制新窗口打开,增强用户单击元素时显示默认菜单项表现,并执行其他用户界面相关任务。这些方法可以通过处理JavaScript或其他插件内容来调用。...典型就是确认和取消)和一个输入框 通知app网页DOM窗口已经关闭 - (void)webViewDidClose:(WKWebView *)webView; app应该从控件关系移除这个WebView...previewActions是元素使用默认操作选项(预览时上拉可见),比如打开链接,添加到阅读列表,拷贝链接,共享。

    20.5K193

    iOS下JS与OC互相调用(二)--WKWebView 拦截URL

    | 打开百度网页前 | 打开百度网页后 --------- | --------- | ------------- UIWebView | 内存47M | 内存75.6M,最高峰83M WKWebView...除了代理方法和WKWebView使用不太一样,关于WKWebView更详尽讲解和用法,还是自行搜索学习,本文重点还是讲解如何实现JS 与OC 互相调用。...提醒:WKWebView 是iOS 8 推出WebKit.framework控件,只有app 不需要兼容iOS 7及以下时候才可以使用。 先看动态效果图: ?...; [self.view addSubview:self.webView]; 因为加载本地HTML内容,跟上一篇UIWebView中介绍HTML内容一样,所以关于HTML内容就不再讲解了...4.WKWebView中使用弹窗 在上面提到,如果在WKWebView中使用alert、confirm 等弹窗,就得实现WKWebViewWKUIDelegate相应代理方法。

    3.5K50

    JSBridge 原理

    Native 和 H5 都有着各自优缺点,为了满足业务需要,公司实际项目的开发过程往往会融合两者进行 Hybrid 开发。...Native 和 H5 分处两地,看起来无法联系,那么如何才能让双方协同实现功能呢?...JSBridge 主要提供了 JS 调用 Native 代码能力,实现原生功能如查看本地相册、打开摄像头、指纹支付等。...某一链接填写是 H5 链接,在对应 Native 页面开发完成前先跳转至 H5 页面,待 Native 页面开发完后再进行拦截,跳转至 Native 页面,此时 H5 链接无需进行修改。...:@"ZcyJsBridge(ev, data)"] JSBridge 使用 如何引用 由 H5 引用 在我司移动端初期版本时采用是该方式,采用本地引入 npm 包方式进行调用。

    2.2K40

    WKWebView

    6,WKWebView是多进程组件,这意味着会从APP内存中分离内存到单独进程。...默认情况下,Web视图会自动将出现在Web内容电话号码转换成电话链接。当电话链接被点击时,电话应用程序就会启动并拨打该号码。...布尔值,用于确定是否按下连接可以显示链接目标的预览。 - goBack。导航到后退列表后腿项。 - goForward。导航到后退列表前进项。...创建并初始化一个WKWebView 设置WebViewnavigationDelegate、UIDelegate、configuration等 加载URL或者HTML字符串 在相应代理方法回调处理业务逻辑...7,本文主要介绍了如何通过WKWebView来展示一个页面,其实,WKWebView不仅仅只有展示功能,它还能够和Native进行交互。而且iOSweb应用,起重点就是与Native进行交互。

    6K20
    领券