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相关推荐

  1. UIWebView捕获内部web点击事件

    在此有一个webView默认是打开 百度的页面:设置代理,并在代理中处理 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest ...

  2. node.js 生成文件_如何使用Node.js在几秒钟内生成模拟数据

    node.js 生成文件 介绍 (Introduction) In most of the applications, you need to have some static JSON data w ...

  3. iOS UIWebView

    设置背景透明设置webview的backgroundColor属性为[UIColor clearColor];webView.backgroundColor = [UIColor clearColor ...

  4. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  5. curl模拟post请求

    另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...

  6. flask_模拟请求post,get

    #coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...

  7. 模拟内存计算如何解决边缘人工智能推理的功耗挑战

    模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...

  8. 为放大器模拟输入模块提供可靠的输入过电压保护

    为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...

  9. 模拟Servlet本质

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

最新文章

  1. 网络:forward和redirect的区别
  2. 基于matlab编译码器的设计,基于MATLAB循环码编译码仿真
  3. 【纠错】——mysql Authentication plugin ‘caching_sha2_password‘ is not supported问题处理
  4. Java基础题笔记2
  5. es Failed: 1: this action would add [2] total shards, but this cluster currently has [1001]/[1000]
  6. Linux Epoll 一网打尽
  7. srsLTE源码学习:逻辑信道多路复用与MAC CE分解pdu_queue.h,pdu_queue.cc
  8. Hudson Jameson将在柏林硬分叉后卸任以太坊基金会社区经理
  9. 安装VS2008关于解决磁盘已满问题方案.
  10. 出现画面抖动_手机拍照时模糊,抖动?赶紧来拯救你的拍摄技术吧!
  11. Linux常用到的命令
  12. VC6 Tips 002: WndTabs 插件
  13. ASP.NET MVC4 高级编程
  14. 音乐和计算机跨界融合,音乐类综艺跨界融合有了新思路
  15. Verilog HDL 出租车计费器实现
  16. bugku misc disordered_zip
  17. Java算法:牛客网哔哩哔哩bilibili笔试真题算法Java版1-14题
  18. 实时调度论文中经常出现的术语 ties broken arbitrary的意思
  19. 【转】我的算法学习之路
  20. linux下kbhit的头文件,linux下kbhit的实现

热门文章

  1. linux apache 跨域,解决nginx/apache静态资源跨域访问问题详解
  2. php繁体输出,PHP输出控制功能在简繁体转换中的应用
  3. c++结构体嵌套结构体_Go学习每日一问(13)-结构体嵌套
  4. php 传递类名,php 对象和数组序列化 serialize()返回字符串方便存储和传递 unserialize()反序列化 不丢失类型和结构...
  5. 数字滚动_告别单调!让PPT数字滚动起来。
  6. 大整数乘法c语言数组,很大的数相乘怎么办?
  7. 音频服务器未显示,Win7系统没有声音提示“一个或多个音频服务未运行”如何解决...
  8. php 将多个数组 相同的键重组,PHP – 合并两个类似于array_combine但具有重复键的数组...
  9. php学的是什么意思_为什么要学习PHP?到底什么是PHP?
  10. 帝国cms linux伪静态规则,帝国cms7.2伪静态规则怎么写