UIWebView -- 未来HTML5 于iOS融合的桥梁

2024-05-08 03:18

本文主要是介绍UIWebView -- 未来HTML5 于iOS融合的桥梁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在有一种新的技术,叫做HTML5。关于这门技术,在编者上大学那会儿,好像是大一那会儿就刚刚开始推出,这个技术为什么到今天还有很多人没有听说过,那是因为我们的浏览器跟不上步伐。。谷歌、opero、IE9等这些浏览器已经支持HTML5,但是中国现在还有大批的用户在使用XP,IE6,IE7等,这就导致了服务器端开发的人员不得不使用HTML4。不过这几年随着智能手机的普及,智能手机端的浏览器,比如UC、还有iOS自带的webView和(安卓的……)都能很好的支持HTML5.早就了很多的手机端的网游,还有比如现在一些3D的网页游戏,都是用到了HTML5这门技术。有服务器开发经验的人员,学习HTML5会很容易上手。。未来HTML5会是主流。。因为器只需要服务器端开发人员。即可实现安卓、iOS、阿里云等跨平台的使用。

     ( 在这里给大家提供一个自学HTML相关的知识的一个免费的网站。www.3cschool.com。)

      iOS的UIkit下有一个强大控件 - - UIWebView。

      它能像浏览器一样,加载网页信息到webView上,而且还能执行脚本语言(JavaScript)。同浏览器一样,也有前进、后退、刷新、停止、转到。还能加载本地的Html,调用js。

  

    //后退if (button.tag == 0) {[_webView goBack];}//前进if (button.tag == 1) {[_webView goForward];}//停止if (button.tag == 2) {[_webView stopLoading];}//刷新if (button.tag == 3) {[_webView reload];}//转到if (button.tag == 4) {//http://www.baidu.com www.baidu.com//判断前缀if (![_textField.text hasPrefix:@"http"]) {_textField.text = [[NSString stringWithFormat:@"http://%@", _textField.text] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];}//请求NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:_textField.text]];//加载请求[_webView loadRequest:request];[_textField resignFirstResponder];}//加载本地htmlif (button.tag == 5) {NSString* path = [[NSBundle mainBundle] pathForResource:@"xml2" ofType:@"html"];NSString* htmlStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];//加载本地html字符串[_webView loadHTMLString:htmlStr baseURL:nil];}

--------------------------

webView的重点:

-------------------------

1:能加载网页,依托于NSURLRequest

    //请求

    NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:_textField.text]];

   //加载请求

    [_webView loadRequest:request];


2:加载本地html

//加载本地html字符串

    [_webView loadHTMLString:htmlStr baseURL:nil];

     

3:  调用js方法

//OC调js方法, func() js函数名

  [_webView stringByEvaluatingJavaScriptFromString:@"func()"];


  这里也可以写直接可以执行的js代码,如:

NSString *height=[webView stringByEvaluatingJavaScriptFromString:@"document.body.clientHeight"];

    NSLog(@"height-- %@ ",height);//打印出了html的高度。



4:js中调用OC方法

    js代码:

    <script type=“javascript”>

    function buttonClick(){

    window.location.href="oc://ocFunc" /*ocFunc -- OC中的方法名,这里前缀可以随便自定义。因为在webView中只要加载一个页面都有回调一个方法。在这个方法中,我们可以监听到连接的地址。*/

    }

    function func(){

    alert("oc来调用了");

    }

    </script>

    <p>金庸射雕三部曲之一。</p>

    <input type="button" οnclick="buttonClick"> 观看</input>



在OC代码中:

   在协议方法中 

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


{

//刷新地址栏

    NSString *url = request.URL.absoluteString;

    //js oc

    //分割字符串 :// http oc

    NSArray* array = [url componentsSeparatedByString:@"://"];

   if ([array[0] isEqualToString:@"oc"]) {

        //array[1] 就是要调用的方法名称

//用SEL包装类包装

       SEL sel = NSSelectorFromString(array[1]);

        [self performSelector:sel];

    }

    returnYES;


}


这篇关于UIWebView -- 未来HTML5 于iOS融合的桥梁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/969154

相关文章

CSS3 布局样式及其应用举例

《CSS3布局样式及其应用举例》CSS3的布局特性为前端开发者提供了无限可能,无论是Flexbox的一维布局还是Grid的二维布局,它们都能够帮助开发者以更清晰、简洁的方式实现复杂的网页布局,本文给... 目录深入探讨 css3 布局样式及其应用引言一、CSS布局的历史与发展1.1 早期布局的局限性1.2

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

全解析CSS Grid 的 auto-fill 和 auto-fit 内容自适应

《全解析CSSGrid的auto-fill和auto-fit内容自适应》:本文主要介绍了全解析CSSGrid的auto-fill和auto-fit内容自适应的相关资料,详细内容请阅读本文,希望能对你有所帮助... css  Grid 的 auto-fill 和 auto-fit/* 父元素 */.gri

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M