当前位置: 首页 > news >正文

Swift - 网页控件(UIWebView)加载本地数据,文件

使用UIWebView加载本地数据或资源有如下三种方式:
1,使用loadHTMLString方法加载HTML内容
2,使用loadRequest方法加载本地资源(也可用于加载服务器资源)
3,先将内容保存成NSData数据,再使用loadData方法加载

示例代码如下(通过UISegmentedControl分别控制网页控件“显示HTML”“显示PDF”“loadData显示PDF”):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class ViewController : UIViewController {
     
     @IBOutlet var webview: UIWebView !
     @IBOutlet var loadtype: UISegmentedControl !
     
     override func viewDidLoad() {
         super .viewDidLoad()
         // Do any additional setup after loading the view, typically from a nib.
         //默认选中分段控件的第一项
         loadtype.selectedSegmentIndex = 0
         typeChanged(loadtype)
     }
     
     @IBAction func typeChanged(sender: UISegmentedControl )
     {
         var index = sender.selectedSegmentIndex
         println (index)
         switch index
         {
         case 0: //在 UIWebView 中显示 HTML 内容
             var html = "<h1>欢迎来到:<a href='http://hangge.com'>航歌</a></h1>" ;
             webview.loadHTMLString(html,baseURL: nil )
         case 1: //在 UIWebView 中显示 PDF
             var path = NSBundle .mainBundle().pathForResource( "test1" , ofType: "pdf" )
             
             var urlStr = NSURL .fileURLWithPath(path!);
             println (urlStr)
             webview.loadRequest( NSURLRequest ( URL :urlStr!));
         case 2: //在 UIWebView 中显示 PDF, 但是是通过 loadData 方式加载
             var path = NSBundle .mainBundle().pathForResource( "test1" , ofType: "pdf" )
             
             var urlStr = NSURL .fileURLWithPath(path!);
             var data = NSData (contentsOfURL:urlStr!);
             
             webview.loadData(data,  MIMEType : "application/pdf" ,
             textEncodingName: "utf-8" ,baseURL: nil );           
         default :
             println ( "是不是出错了?" )           
         }
     }
}

转载于:https://www.cnblogs.com/Free-Thinker/p/4838199.html

相关文章:

  • [原] 利用 OVS 建立 VxLAN 虚拟网络实验
  • Swift - 几种使用数组的数据存储模型
  • Good Luck in CET-4 Everybody!(博弈)
  • Learning Joomla! 3 Extension Development-Third Edition_翻译
  • JavaBean 基础概念、使用实例及代码分析
  • iOS—静态方法(类方法)和实例方法
  • [HDOJ4911]Inversion
  • MySQL的Auto-Failover功能
  • (转)菜鸟学数据库(三)——存储过程
  • Swift - 禁用UIWebView和WKWebView的下拉拖动效果
  • ubuntu上hadoop 单节点伪分布式安装测试
  • 开发npm模块经验总结
  • Fiddler
  • 菜鸟的it之路-起航
  • 10分钟掌握XML、JSON及其解析
  • 2017-08-04 前端日报
  • Android 架构优化~MVP 架构改造
  • canvas 五子棋游戏
  • input的行数自动增减
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Linux CTF 逆向入门
  • mysql中InnoDB引擎中页的概念
  • socket.io+express实现聊天室的思考(三)
  • springboot_database项目介绍
  • Web设计流程优化:网页效果图设计新思路
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 对JS继承的一点思考
  • 关于List、List?、ListObject的区别
  • 汉诺塔算法
  • 后端_MYSQL
  • 机器学习学习笔记一
  • 微信支付JSAPI,实测!终极方案
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • (12)Linux 常见的三种进程状态
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)计算机毕业设计高校学生选课系统
  • (七)Java对象在Hibernate持久化层的状态
  • (转)fock函数详解
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net 发送邮件
  • .NET的微型Web框架 Nancy
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @取消转义
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [CVPR2021]Birds of a Feather: Capturing Avian Shape Models from Images
  • [IE编程] IE中使网页元素进入编辑模式
  • [Java]快速入门二叉树,手撕相关面试题
  • [Machine Learning] Learning with Noisy Labels
  • [Machine Learning] 领域适应和迁移学习
  • [Python进阶] 消息框、弹窗:pywin32
  • [SRM603] WinterAndSnowmen