webui之常用js操作(webui界面是什么)

发布时间:2023-12-08

webui之常用js操作(webui界面是什么)

更新:2022-11-15 22:40

本文目录一览:

  1. web前端开发需要掌握的几个必备技术
  2. 在WEB中如何用JS打开APP
  3. Web前端的学习顺序及内容是什么?
  4. [WKWebView js方法的使用](#WKWebView js方法的使用)

web前端开发需要掌握的几个必备技术

接下来由小编简单的列举出几个前端开发中必须要学会的知识:

第一阶段:

HTML+CSS:

  • HTML进阶
  • CSS进阶
  • div+css布局
  • HTML+css整站开发 JavaScript基础:
  • Js基础教程
  • js内置对象常用方法
  • 常见DOM树操作大全
  • ECMAscript、DOM、BOM
  • 定时器和焦点图 JS基本特效:
  • 常见特效,例如:tab、导航、整页滚动、轮播图、JS制作幻灯片、弹出层、手风琴菜单、瀑布流布局、滚动事件、滚差视图 JS高级特征:
  • 正则表达式
  • 排序算法
  • 递归算法
  • 闭包
  • 函数节流
  • 作用域链
  • 基于距离运动框架
  • 面向对象基础 JQuery:基础使用
  • 悬着器
  • DOM操作
  • 特效和动画
  • 方法链
  • 拖拽、变形
  • JQueryUI组件基本使用

第二阶段:

HTML5和移动Web开发 HTML5:

  • HTML5新语义标签
  • HTML5表单
  • 音频和视频
  • 离线和本地存储
  • SVG、WebSocket、Canvas CSS3:
  • CSS3新选择器
  • 伪元素
  • 色彩表示法
  • 边框、阴影
  • background系列属性改变
  • Transition、动画
  • 景深和深透、3D效果制作
  • Velocity.js框架
  • 元素进场、出场策略
  • 炫酷CSS3网页制作 Bootstrap:
  • 响应式概念
  • 媒体查询
  • 响应式网站制作
  • 删格系统
  • 删格系统原理
  • Bootstrap常用模板
  • LESS和SASS 移动Web开发:
  • 跨终端WEB和主流设备简介
  • 视口
  • 流式布局
  • 弹性盒子
  • rem
  • 移动终端JavaScript事件
  • 手机中常见JS效果制作
  • Zepto.js
  • 手机聚划算页面
  • 手机滚屏

第三阶段:

HTTP服务和AJAX编程 WEB服务器基础:

  • 服务器基础知识
  • Apache服务器和其他WEB服务器介绍
  • Apache服务器搭建
  • HTTP介绍 PHP基础:
  • PHP基础语法
  • 使用PHP处理简单的GET或者POST请求 AJAX上篇:
  • Ajax简介和异步的概念
  • Ajax框架的封装
  • XMLHttpRequest对象详细介绍方法
  • 兼容性处理方法
  • Ajax中缓存问题
  • XML介绍和使用 AJAX下篇:
  • JSON和JSON解析
  • 数据绑定和模板技术
  • JSONP、跨域技术
  • 图片预读取和lazy-load技术
  • JQuery框架中的AjaxAPI
  • 使用Ajax实现瀑布流案例

第四阶段:

面向对象进阶 面向对象终极篇:

  • 从内存角度到理解JS面向对象
  • 基本类型、复杂类型
  • 原型链
  • ES6中的面向对象
  • 属性读写权限
  • 设置器、访问器 面向对象三大特征:
  • 继承性
  • 多态性
  • 封装性
  • 接口 设计模式:
  • 面向对象编程思维
  • 单例模式
  • 工厂模式
  • 策略模式
  • 观察者模式
  • 模板方法模式
  • 代理模式
  • 装饰者模式
  • 适配器模式
  • 面向切面编程

第五阶段:

封装一个属于自己的框架 框架封装基础:

  • 事件流
  • 冒泡、捕获
  • 事件对象
  • 事件框架
  • 选择框架 框架封装中级:
  • 运动原理
  • 单物体运动框架
  • 多物体运动框架
  • 运动框架面向对象封装 框架封装高级和补充:
  • JQuery框架雏形
  • 可扩展性
  • 模块化
  • 封装属于传智自己的框架

第六阶段:

模块化组件开发 面向组件编程:

  • 面向组件编程的方式
  • 面向组件编程的实现原理
  • 面向组件编程实战
  • 基于组件化思想开发网站应用程序 面向模块编程:
  • AMD设计规范
  • CMD设计规范
  • RequireJS,LoadJS
  • 淘宝的SeaJS

第七阶段:

主流的流行框架 Web开发工作流:

  • GIT/SVN
  • Yeoman脚手架
  • NPM/Bower依赖管理工具
  • Grunt/Gulp/Webpack MVC/MVVM/MVW框架:
  • Angular.js
  • Backbone.js
  • Knockout/Ember 常用库:
  • React.js
  • Vue.js
  • Zepto.js

第八阶段:

HTML5原生移动应用开发 Cordova:

  • WebApp/NativeApp/HybirdApp简介
  • Cordova简介、与PhoneGap之间的关系
  • 开发环境搭建
  • Cordova实战(创建项目,配置,编译,调试,部署发布) Ionic:
  • Ionic简介和同类对比
  • 模板项目解析
  • 常见组件及使用
  • 结合Angular构建APP
  • 常见效果(下拉刷新,上拉加载,侧滑导航,选项卡) ReactNative:
  • ReactNative简介
  • ReactNative环境配置
  • 创建项目,配置,编译,调试,部署发布
  • 原生模块和UI组件
  • 原生常用API HTML5+:
  • HTML5+中国产业联盟
  • HTML5PlusRuntime环境
  • HBuilder开发工具
  • MUI框架
  • H5+开发和部署

第九阶段:

Node.js全栈开发 快速入门:

  • Node.js发展、生态圈
  • Io.js
  • Linux/Windows/OSX环境配置
  • REPL环境和控制台程序
  • 异步编程,非阻塞I/O
  • 模块概念,模块管理工具
  • 开发流程,调试,测试 核心模块和对象:
  • 全局对象global,process,console,util
  • 事件驱动,事件发射器
  • 加密解密,路径操作,序列化和反序列化
  • 文件流操作
  • HTTP服务端与客户端 Web开发基础:
  • HTTP协议,请求响应处理过程
  • 关系型数据库操作和数据访问
  • 非关系型数据库操作和数据访问
  • 原生的Node.js开发Web应用程序
  • Web开发工作流
  • Node.js开发Blog案例 快速开发框架:
  • Express简介+MVC简介
  • Express常用API
  • Express路由模块
  • Jade/Ejs模板引擎
  • 使用Express重构Blog案例
  • Koa等其他常见MVC框架

在WEB中如何用JS打开APP

先看一下Web中,我们给h1标签添加一个onclick事件,让它在被点击之后,修改当前的url。 Web中的HTML代码:

<head>
<script>
function getInfo(name) {
    window.location = "/getInfo/"+name;
}
</script>
</head>
<body>
<h1 onclick="getInfo('why')">Name</h1>
</body>
</html>

iOS中,先拖拽WebView,访问localhost,然后通过WebView的委托事件监听url跳转操作,并且把跳转截取下来。 也就是说,在onclick的时候,普通浏览器会跳转到那个url,但是在iOS的这个WebView里面,这个跳转会被拦截,用这种方式可以巧妙地实现JS调用iOS的原生代码:

//
// DWViewController.m
// DareWayApp
//
// Created by why on 14-6-3.
// Copyright (c) 2014年 DareWay. All rights reserved.
//
#import "DWViewController.h"
@interface DWViewController ()
@property (weak, nonatomic) IBOutlet UIWebView *myWebview; // 主页面
@end
@implementation DWViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // 适配iOS6的状态栏
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
        _myWebview.frame = CGRectMake(0,20,self.view.frame.size.width,self.view.frame.size.height-20);
    }
    // 加载指定的URL
    NSURL *url = [NSURL URLWithString:@""];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [_myWebview setDelegate:self];
    [_myWebview loadRequest:request];
}
// 网页中的每一个请求都会被触发
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    // 每次跳转时候判断URL
    if([request.mainDocumentURL.relativePath isEqualToString:@"/getInfo/why"]) {
        NSLog(@"why");
        return NO;
    }
    return YES;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

Web前端的学习顺序及内容是什么?

第一阶段:

  • HTML CSS: HTML进阶、CSS进阶、div css布局、HTML css整站开发
  • JavaScript基础: Js基础教程、js内置对象常用方法、常见DOM树操作大全、ECMAscript、DOM、BOM、定时器和焦点图
  • JS基本特效: 常见特效,例如:tab、导航、整页滚动、轮播图、JS制作幻灯片、弹出层、手风琴菜单、瀑布流布局、滚动事件、滚差视图
  • JS高级特征: 正则表达式、排序算法、递归算法、闭包、函数节流、作用域链、基于距离运动框架、面向对象基础
  • JQuery: 基础使用悬着器、DOM操作、特效和动画、方法链、拖拽、变形、JQueryUI组件基本使用

第二阶段:

HTML5和移动Web开发

  • HTML5: HTML5新语义标签、HTML5表单、音频和视频、离线和本地存储、SVG、WebSocket、Canvas
  • CSS3: CSS3新选择器、伪元素、色彩表示法、边框、阴影、background系列属性改变、Transition、动画、景深和深透、3D效果制作、Velocity.js框架、元素进场、出场策略、炫酷CSS3网页制作
  • Bootstrap: 响应式概念、媒体查询、响应式网站制作、删格系统、删格系统原理、Bootstrap常用模板、LESS和SASS
  • 移动Web开发: 跨终端WEB和主流设备简介、视口、流式布局、弹性盒子、rem、移动终端JavaScript事件、手机中常见JS效果制作、Zepto.js、手机聚划算页面、手机滚屏

第三阶段:

HTTP服务和AJAX编程

  • WEB服务器基础: 服务器基础知识、Apache服务器和其他WEB服务器介绍、Apache服务器搭建、HTTP介绍
  • PHP基础: PHP基础语法、使用PHP处理简单的GET或者POST请求
  • AJAX上篇: Ajax简介和异步的概念、Ajax框架的封装、XMLHttpRequest对象详细介绍方法、兼容性处理方法、Ajax框架的封装、Ajax中缓存问题、XML介绍和使用
  • AJAX下篇: JSON和JSON解析、数据绑定和模板技术、JSONP、跨域技术、图片预读取和lazy-load技术、JQuery框架中的AjaxAPI、使用Ajax实现瀑布流案例

第四阶段:

面向对象进阶

  • 面向对象终极篇: 从内存角度到理解JS面向对象、基本类型、复杂类型、原型链、ES6中的面向对象、属性读写权限、设置器、访问器
  • 面向对象三大特征: 继承性、多态性、封装性、接口
  • 设计模式: 面向对象编程思维、单例模式、工厂模式、策略模式、观察者模式、模板方法模式、代理模式、装饰者模式、适配器模式、面向切面编程

第五阶段:

封装一个属于自己的框架

  • 框架封装基础: 事件流、冒泡、捕获、事件对象、事件框架、选择框架
  • 框架封装中级: 运动原理、单物体运动框架、多物体运动框架、运动框架面向对象封装
  • 框架封装高级和补充: JQuery框架雏形、可扩展性、模块化、封装属于传智自己的框架

第六阶段:

模块化组件开发

  • 面向组件编程: 面向组件编程的方式、面向组件编程的实现原理、面向组件编程实战、基于组件化思想开发网站应用程序
  • 面向模块编程: AMD设计规范、CMD设计规范、RequireJS,LoadJS、淘宝的SeaJS

第七阶段:

主流的流行框架

  • Web开发工作流: GIT/SVN、Yeoman脚手架、NPM/Bower依赖管理工具、Grunt/Gulp/Webpack
  • MVC/MVVM/MVW框架: Angular.js、Backbone.js、Knockout/Ember
  • 常用库: React.js、Vue.js、Zepto.js

第八阶段:

HTML5原生移动应用开发

  • Cordova: WebApp/NativeApp/HybirdApp简介、Cordova简介、与PhoneGap之间的关系、开发环境搭建、Cordova实战(创建项目,配置,编译,调试,部署发布)
  • Ionic: Ionic简介和同类对比、模板项目解析、常见组件及使用、结合Angular构建APP、常见效果(下拉刷新,上拉加载,侧滑导航,选项卡)
  • React Native: React Native简介、React Native环境配置、创建项目,配置,编译,调试,部署发布、原生模块和UI组件、原生常用API
  • HTML5+: HTML5+中国产业联盟、HTML5 Plus Runtime环境、HBuilder开发工具、MUI框架、H5+开发和部署

第九阶段:

Node.js全栈开发

  • 快速入门: Node.js发展、生态圈、Io.js、Linux/Windows/OS X环境配置、REPL环境和控制台程序、异步编程,非阻塞I/O、模块概念,模块管理工具、开发流程,调试,测试
  • 核心模块和对象: 全局对象global,process,console,util、事件驱动,事件发射器、加密解密,路径操作、序列化和反序列化、文件流操作、HTTP服务端与客户端
  • 祝你学有所成! 如果大家对于学习前端有任何不懂的可以随时来问我,我给你提供一个非常不错的前端交流学习群:前面是一一四,中间是一八八,后面是四九三一。有问题就在里面问我,这样你可以少走很多弯路,做起来有效率,记得多跟有经验的人交流,别闭门造车。如果没有比较好的教程,也可以管我要。

WKWebView js方法的使用

一、h5 调用 OC,给OC传值

  1. 在WKWebview初始化的时候,先注册JS方法
    // 这个类主要用来做native与JavaScript的交互管理
    WKUserContentController * wkUController = [[WKUserContentController alloc] init];
    // 注册一个name为jsToOcNoPrams的js方法,设置处理接收JS方法的代理
    [wkUController addScriptMessageHandler:self name:@"jsToOcNoPrams"];
    [wkUController addScriptMessageHandler:self name:@"jsToOcWithPrams"];
    config.userContentController = wkUController;
    
  2. 拦截js方法,接收参数 注意:遵守WKScriptMessageHandler协议,代理是由WKUserContentControl设置
    // 通过接收JS传出消息的name进行捕捉的回调方法
    - (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {
        NSLog(@"name:%@\n body:%@\n frameInfo:%@\n",message.name,message.body,message.frameInfo);
        // 用message.body获得JS传出的参数体
        NSDictionary * parameter = message.body;
        // JS调用OC
        if([message.name isEqualToString:@"jsToOcNoPrams"]){
            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"js调用到了oc" message:@"不带参数" preferredStyle:UIAlertControllerStyleAlert];
            [alertController addAction:([UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { }])];
            [self presentViewController:alertController animated:YES completion:nil];
        } else if([message.name isEqualToString:@"jsToOcWithPrams"]){
            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"js调用到了oc" message:parameter[@"params"] preferredStyle:UIAlertControllerStyleAlert];
            [alertController addAction:([UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { }])];
            [self presentViewController:alertController animated:YES completion:nil];
        }
    }
    
  3. 在webview释放注销之前移除js方法
    // 移除注册的js方法
    [[_webView configuration].userContentController removeScriptMessageHandlerForName:@"jsToOcNoPrams"];
    

二、OC调用H5,给H5传值

  1. // OC调用JS changeColor()是JS方法名,completionHandler是异步回调block
    NSString *jsString = [NSString stringWithFormat:@"changeColor('%@')", @"Js参数"];
    [_webView evaluateJavaScript:jsString completionHandler:^(id _Nullable data, NSError * _Nullable error) {
        NSLog(@"改变HTML的背景色");
    }];
    // 改变字体大小 调用原生JS方法
    NSString *jsFont = [NSString stringWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'", arc4random()%99 + 100];
    [_webView evaluateJavaScript:jsFont completionHandler:nil];
    
  2. // 页面加载完成之后调用
    - (void)webView:(WKWebView*)webView didFinishNavigation:(WKNavigation*)navigation {
        [SVProgressHUD dismiss];
        NSString* jsStr = [NSString stringWithFormat:@"payResult('%@')",@"true"];
        [self.webView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError* _Nullable error) {
            NSLog(@"==%@----%@",result, error);
        }];
    }