模拟UIWebView
2019独角兽企业重金招聘Python工程师标准>>>
//
// ViewController.m
// 模拟UIWebView
//
// Created by dc0061 on 15/12/10.
// Copyright © 2015年 dc0061. All rights reserved.
//#import "ViewController.h"@interface ViewController ()<UISearchBarDelegate,UIWebViewDelegate>
{UISearchBar *_bar;UIWebView *_webView;UIToolbar *_toolbar;UIBarButtonItem *_backButton;UIBarButtonItem *_forwarButton;
}
@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];[self layout];
}
- (void) layout{//添加搜索栏_bar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 20, 375, 50)];_bar.delegate=self;[self.view addSubview:_bar];//添加浏览器_webView =[[UIWebView alloc]initWithFrame:CGRectMake(0, 90, 375, 527)];_webView.delegate=self;[self.view addSubview:_webView];_toolbar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 617, 375, 50)];[self.view addSubview:_toolbar];_backButton =[[UIBarButtonItem alloc]initWithTitle:@"返回⬅️" style:UIBarButtonItemStyleDone target:self action:@selector(fanhui)];_forwarButton =[[UIBarButtonItem alloc]initWithTitle:@"前进→" style:UIBarButtonItemStyleDone target:self action:@selector(qianjin)];//空按钮,没有点击事件UIBarButtonItem *btnSpacing=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];_toolbar.items=@[_backButton,btnSpacing,_forwarButton];
}#pragma mark UISearchBar代理方法
- (void) searchBarSearchButtonClicked:(UISearchBar *)searchBar{[self request:searchBar.text];
}#pragma mark UIWebView开始时调用的方法
-(void) webViewDidStartLoad:(UIWebView *)webView{NSLog(@"UIWebView开始时调用的方法");[UIApplication sharedApplication].networkActivityIndicatorVisible=YES;
}
#pragma mark UIWebView加载结束时调用的方法
- (void) webViewDidFinishLoad:(UIWebView *)webView{_bar.text=[NSString stringWithFormat:@"%@",webView.request.URL];[UIApplication sharedApplication].networkActivityIndicatorVisible=NO;
}
- (void) request : (NSString *) name{NSURL *url;if([name hasPrefix:@"file://"]){//1获取文件位置NSRange rang=[name rangeOfString:@"file://"];NSString *urlName=[name substringFromIndex:rang.length];//获取文件位置url=[[NSBundle mainBundle]URLForResource:urlName withExtension:nil];}else{NSString *str=[NSString stringWithFormat:@"http://www.baidu.com/s?&wd=%@",name];str=[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];//将url先进行编码url=[NSURL URLWithString:str];}[_webView loadRequest:[NSURLRequest requestWithURL:url]];
}- (void) fanhui{[_webView goBack];
}- (void) qianjin{[_webView goForward];
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];
}@end
转载于:https://my.oschina.net/u/2287505/blog/542226
模拟UIWebView相关推荐
- UIWebView捕获内部web点击事件
在此有一个webView默认是打开 百度的页面:设置代理,并在代理中处理 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest ...
- node.js 生成文件_如何使用Node.js在几秒钟内生成模拟数据
node.js 生成文件 介绍 (Introduction) In most of the applications, you need to have some static JSON data w ...
- iOS UIWebView
设置背景透明设置webview的backgroundColor属性为[UIColor clearColor];webView.backgroundColor = [UIColor clearColor ...
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- curl模拟post请求
另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...
- flask_模拟请求post,get
#coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...
- 模拟内存计算如何解决边缘人工智能推理的功耗挑战
模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...
- 为放大器模拟输入模块提供可靠的输入过电压保护
为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...
- 模拟Servlet本质
JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...
最新文章
- 网络:forward和redirect的区别
- 基于matlab编译码器的设计,基于MATLAB循环码编译码仿真
- 【纠错】——mysql Authentication plugin ‘caching_sha2_password‘ is not supported问题处理
- Java基础题笔记2
- es Failed: 1: this action would add [2] total shards, but this cluster currently has [1001]/[1000]
- Linux Epoll 一网打尽
- srsLTE源码学习:逻辑信道多路复用与MAC CE分解pdu_queue.h,pdu_queue.cc
- Hudson Jameson将在柏林硬分叉后卸任以太坊基金会社区经理
- 安装VS2008关于解决磁盘已满问题方案.
- 出现画面抖动_手机拍照时模糊,抖动?赶紧来拯救你的拍摄技术吧!
- Linux常用到的命令
- VC6 Tips 002: WndTabs 插件
- ASP.NET MVC4 高级编程
- 音乐和计算机跨界融合,音乐类综艺跨界融合有了新思路
- Verilog HDL 出租车计费器实现
- bugku misc disordered_zip
- Java算法:牛客网哔哩哔哩bilibili笔试真题算法Java版1-14题
- 实时调度论文中经常出现的术语 ties broken arbitrary的意思
- 【转】我的算法学习之路
- linux下kbhit的头文件,linux下kbhit的实现
热门文章
- linux apache 跨域,解决nginx/apache静态资源跨域访问问题详解
- php繁体输出,PHP输出控制功能在简繁体转换中的应用
- c++结构体嵌套结构体_Go学习每日一问(13)-结构体嵌套
- php 传递类名,php 对象和数组序列化 serialize()返回字符串方便存储和传递 unserialize()反序列化 不丢失类型和结构...
- 数字滚动_告别单调!让PPT数字滚动起来。
- 大整数乘法c语言数组,很大的数相乘怎么办?
- 音频服务器未显示,Win7系统没有声音提示“一个或多个音频服务未运行”如何解决...
- php 将多个数组 相同的键重组,PHP – 合并两个类似于array_combine但具有重复键的数组...
- php学的是什么意思_为什么要学习PHP?到底什么是PHP?
- 帝国cms linux伪静态规则,帝国cms7.2伪静态规则怎么写