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

如何通过objective-c使用UiWebView创建持久缓存?

Objective-C是一种面向对象的编程语言,常用于iOS和Mac应用程序开发。在Objective-C中,可以通过使用UiWebView来创建具有持久缓存功能的Web视图。

要使用Objective-C创建持久缓存,可以按照以下步骤进行操作:

  1. 导入WebKit框架:在Objective-C项目中,需要先导入WebKit框架才能使用UiWebView。可以在项目的Build Phases中的Link Binary With Libraries部分添加WebKit.framework。
  2. 创建UiWebView对象:可以使用以下代码创建一个UiWebView对象,并将其添加到视图层级中:
代码语言:txt
复制
#import <WebKit/WebKit.h>

// 创建UiWebView对象
UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:webView];
  1. 配置持久缓存:可以通过设置UiWebView对象的缓存策略来实现持久缓存。可以使用以下代码配置缓存策略:
代码语言:txt
复制
// 获取共享URL缓存对象
NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024
                                                     diskCapacity:20 * 1024 * 1024
                                                         diskPath:nil];

// 设置UiWebView的缓存策略
[NSURLCache setSharedURLCache:URLCache];

// 创建UiWebView的请求对象
NSURL *url = [NSURL URLWithString:@"https://example.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60];

// 加载请求
[webView loadRequest:request];

在上述代码中,我们创建了一个共享的URL缓存对象,并设置了缓存的内存容量和磁盘容量。然后,通过设置UiWebView的缓存策略为NSURLRequestReturnCacheDataElseLoad,该策略表示如果有缓存数据,则使用缓存数据,否则从网络加载数据并缓存起来。最后,使用loadRequest方法加载请求。

  1. 清除缓存:如果需要清除缓存,可以使用以下代码:
代码语言:txt
复制
// 清除缓存
[[NSURLCache sharedURLCache] removeAllCachedResponses];

通过调用上述代码,可以清除所有缓存的响应数据。

以上是使用Objective-C通过UiWebView创建持久缓存的基本步骤。关于UiWebView的更多功能和用法,可以参考腾讯云提供的WebView组件

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

相关·内容

如何使用Hue通过数据文件创建Collections

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。...1.文档编写目的 ---- 在CDH5.9版本及更新版本中,Hue新增一个全新工具从数据文件中创建Apache Solr的Collections,可以通过该工具轻松的将数据加载到Solr的Collection...这种做法往往需要较长的时间,现在Hue的新功能可以以界面的方式在几分钟内为您启动一个YARN的作业来创建索引工作。本篇文章主要介绍如何使用Hue通过数据文件创建Collections。...你也可以通过CM来配置:Hue Service →Configuration → Service-Wide → Advanced → Hue Service Advanced ConfigurationSnippet...温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 [583bcqdp4x.gif]

2K60
  • Objective-c与js交互专题

    从 JS 里头传一个空对象给 Objective-C 程序,用的不是 Objective-C 里头原本表示「没有东西」的方式,像是 NULL、nil、NSNull 等,而是专属 WebKit 使用的 WebUndefined...所以,js端作用主要有三个: 缓存业务数据(包括注册事件); 提供公用方法供Native端调用,一般用于获取缓存的业务数据; 触发load动作以唤醒与Native的交互动作; 主要公用方法: handleMessageFromObjC...使用过程 1.初始化一个webview(viewdidload) UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.bounds...(1) js调oc方法(可以通过data给oc方法传值,使用responseCallback将值再返回给js) [_bridge registerHandler:@"testObjcCallback"...iOS 获取UIWebView上面的按钮点击事件 http://blog.csdn.net/zhangkongzhongyun/article/details/24314007 UIWebView使用总结

    1.7K50

    手把手教你从Core Data迁移到Realm

    通信 Js 使用了两种方式来与 Objective-C 通信,一种是使用 XMLHttpRequest 发起请求的方式,另一种则是通过设置透明的 iframe 的 src 属性。...通过在 Js 端创建一个透明的 iframe,设置这个 ifame 的 src 为自定义的协议,而 ifame 的 src 更改时,UIWebView 会先回调其 delegate 的 webView:...            execIframe.src = "gap://ready";         }     }     ... } iOS这边对应的要在WebView里面写响应的方法 // UIWebView...加载 URL 前回调的方法,返回 YES,则开始加载此 URL,返回 NO,则忽略此 URL - (BOOL)webView:(UIWebView*)theWebView...boolValue];     NSString* argumentsAsJSON = [result argumentsAsJSON];          // 将请求的处理结果及 callbackId 通过调用

    1.3K70

    iOS Hybrid 框架

    通信 Js 使用了两种方式来与 Objective-C 通信,一种是使用 XMLHttpRequest 发起请求的方式,另一种则是通过设置透明的 iframe 的 src 属性。...通过在 Js 端创建一个透明的 iframe,设置这个 ifame 的 src 为自定义的协议,而 ifame 的 src 更改时,UIWebView 会先回调其 delegate 的 webView:...            execIframe.src = "gap://ready";         }     }     ... } iOS这边对应的要在WebView里面写响应的方法 // UIWebView...加载 URL 前回调的方法,返回 YES,则开始加载此 URL,返回 NO,则忽略此 URL - (BOOL)webView:(UIWebView*)theWebView...boolValue];     NSString* argumentsAsJSON = [result argumentsAsJSON];          // 将请求的处理结果及 callbackId 通过调用

    2.3K90

    oc 与 js 互相调用

    很久之前用的互相调用的方法,今天要分享下,故记录下 Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。...UIWebView用于在App中嵌入网页内容,通常情况下是html格式的网页,也支持pdf, word等文档。 控件优点 可跨平台    开发一次可以部署iOS、Android等平台。...数据通讯复杂    UIWebView与App之间进行数据通讯只能通过javascript或者UIWebViewDelegate来进行,客户端想传参数给UIWebView修改网页或者从网页中获取数据都比较复杂...使用场景 排版复杂的内容 需后台灵活控制的界面 原网页 1.加载网页 UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds...* 拦截URL js调用oc @param webView @param request @param navigationType @return */ - (BOOL)webView:(UIWebView

    1.2K10

    http:blog.csdn.netu010105969articledetails53541088

    ,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS的交互却与UIWebView有所不同。...注意:在利用UIWebView展示网页的时候我们如果要想与JS进行交互那么我们就得获取JS代码中的方法名,而我们在使用WKWebView的时候就不用了。...这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。...有助于使用TOC语法后生成一个完美的目录。 如何改变文本的样式 强调文本 强调文本 加粗文本 加粗文本 标记文本 删除文本 引用文本 H2O is是液体。 210 运算结果是 1024....tool Authors John Luke 如何创建一个注脚 一个具有注脚的文本。

    1.6K30

    iOS开发中的WKWebView与JS的交互

    之前已经写过一个篇OC与JS交互的博客了(博客地址:http://blog.csdn.net/u010105969/article/details/53189934),可当时用来展示网页的控件是UIWebView...,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS的交互却与UIWebView有所不同。...            } Test how to use objective-c...注意:在利用UIWebView展示网页的时候我们如果要想与JS进行交互那么我们就得获取JS代码中的方法名,而我们在使用WKWebView的时候就不用了。...客户端中需增加的代码: // 注入JS对象名称AppModel,当JS通过AppModel来调用时, // 我们可以在WKScriptMessageHandler代理中接收到  [config.userContentControlleraddScriptMessageHandler

    2.3K20

    通过三个实例掌握如何使用 TypeScript 泛型创建可重用的 React 组件

    接下来,我们将通过实例代码一步步展示如何实现这一目标,让你能够轻松掌握这项技能,并应用到实际项目中去。无论你是刚入门的新手,还是有一定经验的开发者,相信都能从中受益。准备好了吗?让我们开始吧!...一、利用 TypeScript 泛型创建简单的可重用 React 组件 创建一个简单的泛型 React 组件 首先,我们来创建一个泛型 React 组件,它可以接受任何类型的数据并通过一个渲染函数将数据展示出来...使用泛型组件渲染任务列表 最后,我们来看看如何用泛型组件渲染一个任务列表。...今天我们就通过一个例子来展示如何实现这一目标。...通过使用泛型,你可以创建适用于任何数据类型的组件,这在处理各种数据类型的实际应用中尤为有用。 希望这篇文章能让你更好地理解如何在 React 组件中使用泛型,并让你的组件变得更加灵活和可重用。

    18210

    win10 uwp 如何创建修改保存位图 创建保存图片在 Image 控件使用WriteableBitmap 转换通过读写像素转换 CanvasBitmap

    本文告诉大家如何使用 Softwarebitmap 进行创建、修改保存图片。 在 UWP 使用底层的图像渲染就是使用 Softwarebitmap ,这个类提供直接数据修改,可以使用这个类进行软渲染。...下面来告诉大家如何使用创建 下面来告诉大家如何读取文件,使用图片数据创建 Softwarebitmap 图片。...创建的函数第一个参数是 GUID 表示需要哪个格式,可以通过 BitmapEncoder 输入,下面代码就是把刚才读取的 jpg 图片转换为 Png 格式。...我来告诉大家如何从代码创建 SoftwareBitmap ,读写像素。...获取图层数量可以使用buffer.GetPlaneCount(),因为第 0 个在这里是有的,所以直接使用 那么图片的宽使用多少个如何拿到,bufferLayout.StartIndex 就是拿到图层开始所在

    2.2K10

    NSURLPtotocol 网络hooker

    忽略网络请求使用本地缓存 重定向网络请求 改变request的请求头 NSURLProtocol的使用 因为NSURLProtocol是一个虚基类,所以不能直接使用它,要想使用它就必须自定义一个类成为他的子类...,不做任何处理的 - (void)startLoading 这个方法作用很大,把当前请求的request拦截下来以后,在这个方法里面对这个request做各种处理,比如添加请求头,重定向网络,使用自定义的缓存等...NSURLProtocolClient 如果我们使用UIWebView发送一个request,拦截以后当我们使用NSURLSession发出了request,那么这个request的response是无法回到这个...UIWebView的,因为可以理解成不是同一个地方发出的request,这个response只能有session来处理,那我们怎么才能让这个response回到刚开始的UIWebView呢?...常见用法总结 重定向网络请求(已经举过例子了) 改变request的请求头 忽略网络请求使用本地缓存 首先自定一个URLResponse类,把资源转化为这个自定义类落地持久化,然后把这个类转换成URL

    40220

    WKWebView

    重新加载当前页面,如果可能,使用缓存验证条件执行端到端重新验证。 - stopLoading。停止加载当前页面所有资源。...重新加载当前页面,如果可能,使用缓存验证条件执行端到端重新验证。 - stopLoading。停止加载当前页面所有资源。...显示加载进度条 我们可以通过监听WKWebView的estimatedProgress属性值来实现一个加载进度条,而UIWebView只能是通过timer事件做一个假的加载进度条。...2,不管是WKWebView还是UIWebView,其实其本质都是一个能够通过网址直接获取到数据流,并将数据流解析渲染出来的组件。...7,本文主要介绍了如何通过WKWebView来展示一个页面,其实,WKWebView不仅仅只有展示的功能,它还能够和Native进行交互。而且iOS中的web应用,起重点就是与Native进行交互。

    6K20

    IOS WebView控件详解

    概述 WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,...导航 在我们浏览网页,时常会使用到的刷新网页、前进、后退等导航操作,UIWebView里面也有对应的操作方法。...代理 在UIWebViewDelegate方法中,一共有4个方法需要注意: //是否允许加载网页,也可获取js要打开的url,通过截取此url可与js交互 - (BOOL)webView:(UIWebView...使用上和UIWebView用法大体一致,主要是新增和优化了一些方法。 例如,使用WKWebView加载百度首页。...*/ @property (nonatomic, readonly, strong) WKBackForwardList *backForwardList; /* 会比较网络数据是否有变化,没有变化则使用缓存

    4.8K80

    iOS WebView 的 Hybrid 框架设计

    作为一种混合开发模式,Hybrid APP 底层依赖 Native 端的 Web 容器(UIWebview 和 WKWebview),上层使用前端 Html5、CSS、Javascript 做业务开发,...Cookie 和不能通过 NSURLProtocol 自定义请求等坑~导致 WKWebView 并没有被开发者大规模推荐使用。...本套框架的预加载和缓存模块儿需要借助 NSURLProtocol 实现,所以这里还是优先使用 UIWebView(想吐个槽,其实如果预加载和缓存这套系统做好以后,UIWebView 的效果并没不比 WKWebView...差),这里也不能把 WKWebView 一棒子打死不用,对于那些对无需预加载和缓存的页面,可以为前端提供参数(比如 wkwebview=true)让前端自己的去选择是否使用 WKWebView,所以这里需要对...本文初衷是想为那些准备使用Hybrid框架的人提供设计上的思路,并通过实际的事例去展示结果,希望对 Hybrid 感兴趣的朋友一起来把 Hybrid 一整套解决方案落地并且能够提供开源。

    1.7K10

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

    UIWebView WKWebView 与 UIWebView 的区别: WKWebView 的内存远远没有 UIWebView 的开销大,而且没有缓存; WKWebView 拥有高达 60FPS...引擎; WKWebView 增加加载进度属性: estimatedProgress ; WKWebView 不支持页面缓存,需要自己注入 cookie , 而 UIWebView 是自动注入 cookie...WKWebView 没有做缓存处理,所以对网页需要缓存的加载性能要求没那么高的还是可以考虑 UIWebView 。 二、WKWebView 有哪一些坑?...WebView 实例的时候,才会创建 WebView 的基础框架。...这两者都是强大的抓包工具,原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。

    3.1K00

    Hades:移动端静态分析框架

    本章节主要内容包含:Hades 的整体架构、为什么要定义语义模型、定义什么样的语义模型、如何输出语义模型以及模型的序列化和持久化。...创建 HadesDriver 在创建驱动器之前,可以使用 Clang 提供的 CommonOptionsParser 类,它将负责解析与编译数据库和输入相关的命令行参数,然后将其作为驱动器的输入。...在 CI 系统中,特别是大型项目持久化的模型存储非常重要。CI 中为了加快集成速度,不得不使用部分二进制的集成方式,但是这样将无法对静态库进行源码分析。...利用 Hades 的模型缓存,我们可以解决二进制集成的局限性。缓存数据也不需要再次编译、模型生成等耗时操作,所以接入 Hades 后基本不影响集成项目的集成速度。...如果不存在缓存,那么将利用前文所述封装好的 HadesGem 通过编译数据库实时生成每个编译单元的 HadesModel。

    2.1K20
    领券