iOS中UIWebView的使用详解

来源:互联网 发布:表白的html源码 编辑:程序博客网 时间:2024/05/17 12:20


摘要 UIWebView是iOS中常用的用于加载网页和html文件的视图空间。
iOSwebView UIWebView 视图控件 加载HTML

目录[-]

  • iOS中UIWebView的使用详解
  • 一、初始化与三种加载方式
  • 二、一些常用的属性和变量
  • 三、iOS7中的一些新特性
  • 四、webView协议中的方法
  • iOS中UIWebView的使用详解

    一、初始化与三种加载方式

         UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种:

    第一种:

    - (void)loadRequest:(NSURLRequest *)request;

    这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如我加载百度的主页:

    ?
    1
    2
    3
        UIWebView * view = [[UIWebView alloc]initWithFrame:self.view.frame];
        [view loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
        [self.view addSubview:view];

    会得到如下的效果:


    第二种:

    - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;

    这个方法需要将httml文件读取为字符串,其中baseURL是我们自己设置的一个路径,用于寻找html文件中引用的图片等素材。

    第三种:

    - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;

    这个方式使用的比较少,但也更加自由,其中data是文件数据,MIMEType是文件类型,textEncodingName是编码类型,baseURL是素材资源路径。

    二、一些常用的属性和变量

    @property (nonatomic,assign) id <UIWebViewDelegate> delegate;

    设置webView的代理

    @property (nonatomic,readonly, retain)UIScrollView *scrollView;

    内置的scrollView

    @property (nonatomic,readonly, retain)NSURLRequest *request;

    URL请求

    - (void)reload;

    重新加载数据

    - (void)stopLoading;

    停止加载数据

    - (void)goBack;

    返回上一级

    - (void)goForward;

    跳转下一级

    @property (nonatomic,readonly, getter=canGoBack)BOOL canGoBack;

    获取能否返回上一级

    @property (nonatomic,readonly, getter=canGoForward)BOOL canGoForward;

    获取能否跳转下一级

    @property (nonatomic,readonly, getter=isLoading)BOOL loading;

    获取是否正在加载数据

    - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;

    通过javaScript操作web数据

    @property (nonatomic)BOOL scalesPageToFit;

    设置是否缩放到适合屏幕大小

    @property (nonatomic)UIDataDetectorTypes dataDetectorTypes NS_AVAILABLE_IOS(3_0);

    设置某些数据变为链接形式,这个枚举可以设置如电话号,地址,邮箱等转化为链接

    @property (nonatomic)BOOL allowsInlineMediaPlayback NS_AVAILABLE_IOS(4_0);

    设置是否使用内联播放器播放视频

    @property (nonatomic)BOOL mediaPlaybackRequiresUserAction NS_AVAILABLE_IOS(4_0);

    设置视频是否自动播放

    @property (nonatomic)BOOL mediaPlaybackAllowsAirPlay NS_AVAILABLE_IOS(5_0);

    设置音频播放是否支持ari play功能

    @property (nonatomic)BOOL suppressesIncrementalRendering NS_AVAILABLE_IOS(6_0);

    设置是否将数据加载如内存后渲染界面

    @property (nonatomic)BOOL keyboardDisplayRequiresUserAction NS_AVAILABLE_IOS(6_0);

    设置用户交互模式

    三、iOS7中的一些新特性

    下面这些属性是iOS7之后才有的,通过他们可以设置更加有趣的web体验

    @property (nonatomic)UIWebPaginationMode paginationMode NS_AVAILABLE_IOS(7_0);

    这个属性用来设置一种模式,当网页的大小超出view时,将网页以翻页的效果展示,枚举如下:

    ?
    1
    2
    3
    4
    5
    6
    7
    typedef NS_ENUM(NSInteger, UIWebPaginationMode) {
        UIWebPaginationModeUnpaginated,//不使用翻页效果
        UIWebPaginationModeLeftToRight,//将网页超出部分分页,从左向右进行翻页
        UIWebPaginationModeTopToBottom,//将网页超出部分分页,从上向下进行翻页
        UIWebPaginationModeBottomToTop,//将网页超出部分分页,从下向上进行翻页
        UIWebPaginationModeRightToLeft//将网页超出部分分页,从右向左进行翻页
    };

    @property (nonatomic)CGFloat pageLength NS_AVAILABLE_IOS(7_0);

    设置每一页的长度

    @property (nonatomic)CGFloat gapBetweenPages NS_AVAILABLE_IOS(7_0);

    设置每一页的间距

    @property (nonatomic,readonly) NSUInteger pageCountNS_AVAILABLE_IOS(7_0);

    获取分页数


    四、webView协议中的方法

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

    准备加载内容时调用的方法,通过返回值来进行是否加载的设置

    - (void)webViewDidStartLoad:(UIWebView *)webView;

    开始加载时调用的方法


    - (void)webViewDidFinishLoad:(UIWebView *)webView;

    结束加载时调用的方法


    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

    加载失败时调用的方法
    0 0
    原创粉丝点击
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 锁屏密码忘了怎么办 抖音停止运行了怎么办? 华为手机右下角有个小人怎么办 华为手机程序停止运行怎么办 华为手机不支持软件搬家怎么办 红米手机没有任务键怎么办 进网许可丢了怎么办 华为稳私空间被稳蔵怎么办 华为手机安装不了软件怎么办 华为手机自动安装软件怎么办 手机在实体店买贵了怎么办 日本买的kindle坏了怎么办 华为麦芒4屏幕失灵怎么办 华为麦芒6屏幕失灵怎么办 手机为什么总显示内存不足怎么办 小米云服务满了怎么办 魅蓝s6声音小怎么办 华为畅享7s丢失怎么办 华为耳机孔坏了怎么办 苹果手机耳机插孔坏了怎么办 荣耀8听筒声音小怎么办 荣耀8听筒音量小怎么办 华为荣耀6声音小怎么办 华为荣耀v8通话声音小怎么办 华为p20没有耳机孔怎么办 华为荣耀手机耳机声音小怎么办 小米5x显示耳机怎么办 手机进水听音乐人声小怎么办 华为荣耀v8手机音量小怎么办 手机充电孔松了怎么办 华为荣耀7卡顿怎么办 华为手机话筒没声音怎么办 苹果x耳机进水了怎么办 苹果6p进水了怎么办 华为手机声音变耳机模式怎么办 手机设置成耳机模式怎么办 opop耳机一个没有声音怎么办 oppo手机上显示耳机模式怎么办 微信显示耳机模式怎么办 微信变成耳机模式怎么办 5s变成耳机模式怎么办