UIKit 框架之WebView
//
// ViewController.m
// UIWebView
//
// Created by City--Online on 15/5/18.
// Copyright (c) 2015年 XQB. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()<UIWebViewDelegate>
@property(nonatomic,strong) UIWebView *webView;
@property(nonatomic,strong) UIActivityIndicatorView *activityView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_webView=[[UIWebView alloc]init];
_webView.frame=self.view.bounds;
_webView.delegate=self;
// NSString *filePath=[[NSBundle mainBundle] pathForResource:@"百度"ofType:@"html"];
// NSString *str=[[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
// [_webView loadHTMLString:str baseURL:nil];
NSURL *url=[NSURL URLWithString:@"http://www.cnblogs.com/gcb999/p/3178728.html"];
NSURLRequest *request=[[NSURLRequest alloc]initWithURL:url];
//禁用拖拽时的反弹效果
_webView.scrollView.bounces=NO;
//默认值为NO,用户不可以放大或缩小页面;如果设置为YES,页面可以通过放大缩小去适应,用户也可以通过手势来放大和缩小
_webView.scalesPageToFit=YES;
//此属性可以设定使电话号码、网址、电子邮件和符合格式的日期等文字变为链接文字
// typedef NS_OPTIONS(NSUInteger, UIDataDetectorTypes) {
// UIDataDetectorTypePhoneNumber = 1 << 0, // Phone number detection 识别电话号码
// UIDataDetectorTypeLink = 1 << 1, // URL detection识别网址,链接等
// UIDataDetectorTypeAddress = 1 << 2, // Street address detection 识别地址
// UIDataDetectorTypeCalendarEvent = 1 << 3, // Event detection 识别时间
// UIDataDetectorTypeNone = 0, // No detection at all 全都不识别
// UIDataDetectorTypeAll = NSUIntegerMax // All types 全部识别
// };
_webView.dataDetectorTypes=UIDataDetectorTypePhoneNumber;
// 控制webview使用html5的video播放视频不全屏(inline)的方法
// webview中用html5的video方式播放视频时,在ipad上是默认原来大小的,而在iphone上是默认全屏播放的
// HTML里video必须加上webkit-playsinline属性
// <video id="player" width="480" height="320" webkit-playsinline>
// Obj-C里,webview设置allowsInlineMediaPlayback属性为YES
// webview.allowsInlineMediaPlayback = YES;
_webView.allowsInlineMediaPlayback=YES;
//是否支持自动播放
// <script>
// if ("wView" in window) {
// window.wView.allowsInlineMediaPlayback = "YES";
// window.wView.mediaPlaybackRequiresUserAction = "NO";
// }
// </script>
// 在head中加入此段代码,ios音视频不能自动播放的问题迎刃而解。
// 当然,在video标签中,需要先设定autoplay和preload属性,如下:
// <video src="xxxxxx" autoplay preload></video>
_webView.mediaPlaybackRequiresUserAction=NO;
//从这个页面是否可以Air Play。 在iPhone和iPad上默认使YES。
_webView.mediaPlaybackAllowsAirPlay=YES;
//是否网页内容下载完毕才开始渲染web视图,默认为NO
_webView.suppressesIncrementalRendering=NO;
//是否在web页面响应用户输入弹出键盘,默认为YES
_webView.keyboardDisplayRequiresUserAction=YES;
//IOS7增加了分页功能
// @property (nonatomic) UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);
// @property (nonatomic) UIWebPaginationBreakingMode paginationBreakingMode NS_AVAILABLE_IOS(7_0);
// @property (nonatomic) CGFloat pageLength NS_AVAILABLE_IOS(7_0);
// @property (nonatomic) CGFloat gapBetweenPages NS_AVAILABLE_IOS(7_0);
// @property (nonatomic, readonly) NSUInteger pageCount NS_AVAILABLE_IOS(7_0);
_webView.paginationMode=UIWebPaginationModeUnpaginated;
[_webView loadRequest:request];
[self.view addSubview:_webView];
_activityView=[[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(20, 20, 40, 40)];
_activityView.center=self.view.center;
_activityView.activityIndicatorViewStyle=UIActivityIndicatorViewStyleWhiteLarge;
[self.view addSubview:_activityView];
}
//如果返回NO,代表不允许加载这个请求
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
switch (navigationType)
{
//点击连接
case UIWebViewNavigationTypeLinkClicked:
{
NSLog(@"clicked");
}
break;
//提交表单
case UIWebViewNavigationTypeFormSubmitted:
{
NSLog(@"submitted");
}
default:
break;
}
return YES;
}
//开始加载
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[_activityView startAnimating];
}
//加载完毕
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[_activityView stopAnimating];
}
//加载失败
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
// [_webView goBack];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
与JS交互这块下面的博客还不错
http://blog.csdn.net/lizhongfu2013/article/details/9232129
http://blog.csdn.net/lizhongfu2013/article/details/9236357




UIKit 框架之WebView的更多相关文章
- Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)
原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...
- UIKit框架
在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...
- iOS学习32之UIKit框架-可视化编程-XIB
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
- 基础框架Fundation和UIkit框架的定义和使用
Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...
- iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。
转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...
- iOS开发UIKit框架-可视化编程-XIB
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
- 79、iOS 的Cocoa框架、Foundation框架以及UIKit框架
Cocoa框架是iOS应用程序的基础 1. Cocoa是什么? Cocoa是 OS X和ios 操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发 ...
- UIKit 框架之UIView二
下面这些都是UIView一些基本的东西,具体的可以参考UIKit 框架之UIView一博客 一.自定义一个View // // MyView.m // UIView // // Created by ...
- UIKit 框架之Bar、Controller
UIKit框架中有各种Bar,UITabBar.UINavigationBar.UIToolbar.Bar对应的就有一些Item,tabBarItem.navigationItem.toolbarIt ...
随机推荐
- 微擎 人人商城 merchant.php源码
<?php define('IN_SYS', true); require '../framework/bootstrap.inc.php'; load()->web('common'); ...
- 语音识别功能_微信小程序代办清单任务
最近想给自己的代办清单任务微信小程序想加个语音识别识别功能,废话不多说,直接说重点,语音识别使用的是百度语音识别api,因为微信小程序的录音输入文件目前只能是mp3或aac 但是百度语音识别不支持这两 ...
- Winform解决界面重绘闪烁的问题
在窗体或用户控件中重写CreateParams protected override CreateParams CreateParams { get { CreateParams cp = base. ...
- WPF 定义Lookless控件的默认样式、 OnApplyTemplate 如何使用(实现方式、如何工作的)!
写的非常详细: 作者地址:https://www.cnblogs.com/atskyline/archive/2012/11/16/2773806.html 参考资料: http://www.code ...
- Codeforces Round #469 (Div. 2)C. Zebras(思维+模拟)
C. Zebras time limit per test memory limit per test 512 megabytes input standard input output standa ...
- FunDA(16)- 示范:整合并行运算 - total parallelism solution
在对上两篇讨论中我们介绍了并行运算的两种体现方式:并行构建数据源及并行运算用户自定义函数.我们分别对这两部分进行了示范.本篇我准备示范把这两种情况集成一体的并行运算模式.这次介绍的数据源并行构建方式也 ...
- Android动画Animation简单示例
Animation是Android给我们提供的一个可以实现动画效果的API,利用Animation我们可以实现一系列的动画效果,比如缩放动画,透明度动画,旋转动画,位移动画,布局动画,帧动画等等.An ...
- sax解析xml,验证格式并支持自定义标签
一.sax简介 SAX是事件驱动型的XML解析方式.顺序读取XML文件,生成事件,传播到用户定义的回调方法中来处理XML文件. 优点: 分段处理xml,而不是将整个xml一次加载进内存,内存占用少,速 ...
- abp 使用 hangfire结合mysql
abp 官方使用的hangfire 默认使用的是sqlserver的存储 需要引入支持mysql的类库 我这边使用的是Hangfire.MySql.Core 直接用nuget安装即可 首先按照官方文档 ...
- sync.WaitGroup和sync.Once
sync.WaitGroup,顾名思义,等待一组goroutinue运行完毕.sync.WaitGroup声明后即可使用,它有如下方法: func (wg *WaitGroup) Add(delta ...