IOS-网络(网页开发-UIWebView,HTML,CSS,JavaScript,OC和JS代码互调)
一、网页基础
- //
- // ViewController.m
- // IOS_0218_网页开发1
- //
- // Created by ma c on 16/2/18.
- // Copyright © 2016年 博文科技. All rights reserved.
- //
- #import "ViewController.h"
- @interface ViewController ()
- @property (weak, nonatomic) IBOutlet UIWebView *webView;
- @end
- @implementation ViewController
- /*
- 一、UIWebView
- 1.什么是UIWebView
- 1>UIWebView是IOS内置浏览器控件
- 2>系统自带的Safari浏览器就是通过UIWebView实现的
- 2.UIWebView不但能加载远程的网页资源,还能在家大部分常见文件
- 1>html\htm
- 2>pdf\doc\ppt\txt
- 3>...
- 二、网页的组成
- 1.HTML(网页的具体内容和结构)
- 2.CSS(网页的样式,美化网页最重要的一块)
- 3.JavaScript(网页的交互效果,比如对用户鼠标事件做出响应)
- 4.学习资料:http://www.w3school.com.cn/
- 三、HTML
- 1.全称:Hyper Text Markup Language,超文本标记语言
- 2.其实就是文本,由浏览器将它解析成具体网页内容
- 3.HTML组成:N个标签组成
- 5.语法松散,最新版本HTML5
- 6.常见标签:
- 1>标题:h1,h2,h3
- 2>段落:p
- 3>换行:br
- 4>容器:div,span(容纳其他标签)
- 5>表格:table,tr,td
- 6>列表:ul,ol,li
- 7>图片:img
- 8>表单:input
- 9>链接:a
- 7.编辑工具:dreamweaver,WebStorm
- 四、CSS
- 1.全称:Cascading Style Sheets,层叠样式表
- 2.作用:美化网页
- 3.CSS编写格式:键值对形式
- 4.三种书写形式:
- 1>行内样式:(内联样式)直接在标签的style属性中写
- <body style = "color: red;">
- 2>内页样式:在本网页的style属性中写
- <style type = "text/css">
- body{
- color: red;
- }
- </style>
- 3>外部样式:在单独的CSS文件中写,然后在网页中用link标签引用
- <link rel = "stylesheet" href = "test.css">
- 五、CSS选择器
- 1.标签选择器 - 选择对应的标签,为之添加样式
- 2.类选择器 - 在标签后加class属性,用.类名添加样式
- 3.id选择器 - 在标签后加id属性,用#id名添加样式
- 4.群组选择器 - 格式:标签,.类名,#id名添加样式
- 5.选择器组合 - 格式:标签.类名 或者 标签#id名
- 6.后代选择器 - 格式:标签 子标签,标签 子标签
- 7.子标签选择器 - 格式:标签 > 子标签(直接子标签)
- 8.相邻兄弟选择器 - 格式:标签 + 标签
- 9.属性选择器 - 格式:标签[属性] 或者 标签[属性][属性] 或者 标签[属性 = “属性名”]
- 10.伪类
- 1>:active 向被激活的元素添加样式
- 2>:focus 想拥有键盘输入焦点的元素添加样式
- 3>:hover 当鼠标悬浮在元素上方时,向元素添加样式
- 4>:link 向未被访问的链接添加样式
- 5>:visited 向已被访问的链接添加样式
- 6>:first-child 向元素的第一个子元素添加样式
- 7>:lang 向带有指定lang属性的元素添加样式
- 11.伪元素
- 1>:first-letter 向文本的第一个字母添加特殊样式
- 2>:first-line 向文本的首行添加特殊样式
- 3>:before 在元素之前添加内容
- 4>:after 在元素之后添加内容
- 六、选择器优先级
- 1.优先级排序:
- 1>important>内联>id>类>标签|伪类|伪元素>通配符>继承
- 2.选择器的针对性越强,它的优先级越高
- 3.选择器的权值
- 1>通配选择符(*):0
- 2>标签:1
- 3>类:10
- 4>属性:10
- 5>伪类:10
- 6>伪元素:1
- 7>id:10
- 8>!important:100
- 4.原则:选择器权值加在一起,大的优先;如果相同,后定义的优先
- 七、HTML标签类型(三大类)
- 1>块级标签:独占一行的标签
- 块级元素水平居中:设置自己的margin:0px auto
- 2>行内标签:多个行内标签能显示在一行
- 非块级元素水平居中:设置父类标签,text-align:center
- 3>行内-块级标签
- 八、修改标签的显示类型
- 1.CSS中有个display属性,能修改标签的显示类型
- 1>none:隐藏标签
- 2>block:块级类型,能随时设置宽度和高度
- 3>inline:行内类型,宽高取决于内容尺寸
- 4>inline-block:行内-块级类型
- 九、CSS属性
- 1.根据继承分类(两类)
- 1>可继承属性
- 父标签的属性值会传递给子标签 - 一般是文字属性
- 2>不可继承属性
- 父标签的属性值不能传递给子 - 一般是区块控制属性
- 2.所有标签可继承
- visibility,cursor
- 3.内联标签可继承
- letter-spacing,word-spacing,white-space,line-height,color,font,font-family,font-size,font-style,
- font-variant,font-weight,text-decoration,text-transform,direction
- 4.块级标签可继承
- text-indent,text-align
- 5.列表标签可继承
- list-style,list-style-type,list-style-position,list-style-image
- 6.不可继承
- display,margin,border,padding,background,
- height,min-height,max-height,width,min-width,max-width
- overflow,position,left,right,top,bottom,z-index
- float,clear
- table-layout,vertical-align
- page-break-after,page-bread-before
- unicode-bidi
- 十、盒子模型
- 1.网页上每个标签都是一个盒子
- 2.每个盒子有四个属性
- 1>内容(content)
- 属性:
- height
- width
- max-height
- max-width
- min-height
- min-width
- 2>填充(padding,内边距)
- 属性
- padding
- padding-bottom
- padding-left
- padding-right
- padding-top
- 3>边框(border,盒子本身)
- 属性
- border-width
- border-style
- border-color
- border-radius
- 4>边界(margin,外边距)
- 属性
- margin
- margin-bottom
- margin-left
- margin-right
- margin-top
- 十一、CSS布局
- 1.默认情况下,所有的网页都在标准流布局中
- 1>从上到下,从左到右
- 2.脱离标准流的方法
- 1>float属性
- 2>position属性和left,right,top,bottom属性
- 3.position属性值
- 1>absolute:生成绝对定位元素,相对于static定位以外的第一个父元素进行定位。元素的位置通过eft,right,top,
- bottom属性进行规定
- 2>fixed:生成绝对定位元素,相对于浏览器窗口进行定位。元素的位置通过eft,right,top,bottom属性进行规定
- 3>relative:生成相对定位元素,相对于其正常位置进行定位
- 4>static:默认值,没有定位,元素出现在正常流中
- 5>inherit:规定应该从父元素继承position属性的值
- 4.子绝父相:子元素相对于父元素进行定位
- */
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = [UIColor cyanColor];
- [self loadWebView];
- }
- - (void)loadWebView
- {
- //伸缩页面填充整个webView
- self.webView.scalesPageToFit = YES;
- //NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/"];
- NSURL *url = [[NSBundle mainBundle] URLForResource:@"01-学前须知" withExtension:@"pptx"];
- NSURLRequest *request = [NSURLRequest requestWithURL:url];
- [self.webView loadRequest:request];
- }
- @end
二、JavaScript和UIWebView代理
- //
- // ViewController.m
- // IOS_0219_网页开发2
- //
- // Created by ma c on 16/2/19.
- // Copyright © 2016年 博文科技. All rights reserved.
- //
- #import "ViewController.h"
- @interface ViewController ()<UIWebViewDelegate>
- @property (weak, nonatomic) IBOutlet UIBarButtonItem *forwardItem;
- @property (weak, nonatomic) IBOutlet UIBarButtonItem *rewindItem;
- - (IBAction)rewind:(id)sender;
- - (IBAction)forward:(id)sender;
- @property (nonatomic, weak) UIWebView *webView;
- @end
- /*
- 一、JavaScript
- 1.定义:JavaScript是一门广泛应用于浏览器客户端的脚本语言
- 1>Netspace公司设计,当时与sun公司合作,所以名字有点像java
- 2>业内一般称JS
- 2.JS常见用途
- HTML DOM操作(节点操作,比如添加,修改,删除节点)
- 给HTML网页增加动态功能,比如动画
- 事件处理:监听鼠标点击,鼠标滑动,键盘输入
- 3.JS的书写形式
- 1>常见书写形式(2种)
- a.页内JS:在当前网页的script标签中写
- <script type="text/javascript">
- </script>
- b.页外JS
- <script src="index.js"></script>
- 4.JS基本操作(CRUD)
- 1>C(create)
- var div = document.createElement('div');
- document.body.appendChild(div);
- 2>R(read)
- var div = document.getElementById('logo');
- var div = document.getElementsByTagName('div')[0];
- var div = document.getElementsByClassName('logo')[0];
- 3>U(update)
- var img = document.getElementById('logo');
- img.src = 'images/01.png';
- 4>D(delete)
- var img = document.getElementById('logo');
- img.parentNode.removeChild(img);
- 5.事件绑定
- 1>推荐做法
- var button = document.getElementById('login')
- button.onclick = function{
- 点击按钮想实现的事
- }
- 2>直接写在标签内部
- <button onclick="var age = 10;alert(age);">登录</button>
- 3>不常用
- function login{
- 点击按钮想实现的事
- }
- var button = document.getElementById('login')
- button.onclick = login;
- 二、jQuery
- 1.通过选择器查找元素
- 1>$('选择器') - jQuery支持大部分的CSS选择器
- 2.属性操作
- 1>获得属性:$('选择器').attr('属性名');
- 2>设置属性:$('选择器').attr('属性名','属性值');
- 3.显示和隐藏
- 1>显示:$('选择器').show();
- 2>隐藏:$('选择器').hide();
- 3>显示和隐藏来回切换:$('选择器').toggle();
- 4.事件绑定
- 1>点击事件
- a.
- $('选择器').click(function(){
- //实现点击按钮所要做的事
- })
- b.
- function login{
- 点击按钮想实现的事
- }
- $('选择器').click(login)
- 三、参考手册
- 1.www.w3school.com
- 2.http://www.w3school.com.cn/jquery/jquery_reference.asp
- 3.http://jquery.cuishifeng.cn
- 4.http://www.jb51.net/shouce/jquery1.82/
- 四、HTML5的框架
- 1.概念
- 有了HTML5的框架,编写简易的几行代码,就能实现非常漂亮的手机界面
- HTML5框架封装了大量的DOM节点操作,封装了大量的CSS样式
- 2.常见的HTML5框架
- 1>PhoneGap
- 2>jQuery Mobile
- 3>sencha-touch
- */
- @implementation ViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- [self createWebView];
- }
- - (void)createWebView
- {
- //1.创建webView
- UIWebView *webview = [[UIWebView alloc] init];
- webview.scalesPageToFit = YES;
- CGRect frame = self.view.frame;
- //frame.origin.y = 64;
- webview.frame = frame;
- [self.view addSubview:webview];
- //2.加载请求
- NSURL *url = [[NSBundle mainBundle] URLForResource:@"web" withExtension:@"xml"];
- NSURLRequest *request = [NSURLRequest requestWithURL:url];
- [webview loadRequest:request];
- //3.设置代理
- webview.delegate = self;
- self.webView = webview;
- }
- #pragma mark - UIWebViewDelegate
- //网页加载完毕
- - (void)webViewDidFinishLoad:(UIWebView *)webView
- {
- self.rewindItem.enabled = [webView canGoBack];
- NSLog(@"webViewDidFinishLoad");
- }
- - (void)webViewDidStartLoad:(UIWebView *)webView
- {
- NSLog(@"webViewDidStartLoad");
- }
- - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
- {
- NSLog(@"didFailLoadWithError");
- }
- //一般用来拦截webView发出的所有请求(加载新的网页)
- //每当webView即将发送一个请求之前,会先调用这个方法
- //YES允许发送这个请求
- - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
- {
- /*
- URL格式:协议头://主机名/路径
- request.URL.path:获得的是主机名后面的路径
- request.URL.absoluteString:获得的是一个完整的URL字符串
- */
- return YES;
- }
- - (IBAction)rewind:(id)sender {
- [self.webView goBack];
- }
- - (IBAction)forward:(id)sender {
- [self.webView goForward];
- }
- @end
三、OC调用JS代码(利用UIWebView)
- //
- // ViewController.m
- // IOS_0229_利用webView加载JS代码
- //
- // Created by ma c on 16/2/19.
- // Copyright © 2016年 博文科技. All rights reserved.
- //
- #import "ViewController.h"
- @interface ViewController ()<UIWebViewDelegate>
- @property (nonatomic, weak) UIActivityIndicatorView *loadingView;
- @end
- @implementation ViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- [self createWebView];
- }
- - (void)createWebView
- {
- //1.创建webView
- UIWebView *webView = [[UIWebView alloc] init];
- webView.frame = self.view.frame;
- webView.delegate = self;
- //隐藏scrollView
- webView.scrollView.hidden = YES;
- [self.view addSubview:webView];
- webView.scalesPageToFit = YES;
- //2.加载网页
- NSURL *url = [NSURL URLWithString:@"http://m.dianping.com/tuan/deal/5501525"];
- NSURLRequest *request = [NSURLRequest requestWithURL:url];
- [webView loadRequest:request];
- //3.创建
- UIActivityIndicatorView *loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
- loadingView.center = self.view.center;
- [loadingView startAnimating];
- [self.view addSubview:loadingView];
- self.loadingView = loadingView;
- }
- //OC->JS(OC调用JS)
- #pragma mark - UIWebViewDelegate
- - (void)webViewDidFinishLoad:(UIWebView *)webView
- {
- //执行JS代码,将大众点评中多余的节点删除掉
- //拿到所有节点内容
- NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];
- NSLog(@"%@",html);
- NSMutableString *js1 = [NSMutableString string];
- // 0.删除顶部的导航条
- [js1 appendString:@"var header = document.getElementsByTagName('header')[0];"];
- [js1 appendString:@"header.parentNode.removeChild(header);"];
- //1.删除底部链接
- [js1 appendString:@"var footer = document.getElementsByTagName('footer')[0];"];
- [js1 appendString:@"footer.parentNode.removeChild(footer);"];
- // NSLog(@"%@",js1);
- [webView stringByEvaluatingJavaScriptFromString:js1];
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
- NSMutableString *js2 = [NSMutableString string];
- //2.删除浮动的广告
- [js2 appendString:@"var list = document.body.childNodes;"];
- [js2 appendString:@"var len = list.length;"];
- [js2 appendString:@"var banner = list[len-1];"];
- [js2 appendString:@"banner.parentNode.removeChild(banner);"];
- [webView stringByEvaluatingJavaScriptFromString:js2];
- //显示scrollView
- webView.scrollView.hidden = NO;
- //删除等待指示器
- [self.loadingView removeFromSuperview];
- });
- }
- @end
四、JS调用OC代码
一、以前使用js调用object-c的方法
1.在UIWebview中载入的js代码中通过改变document.locations=“”, window.location.href=""
2.然后回调
UIWebview的-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType函数,
通过截取NSURLRequest解析js中传递过来的参数,再根据参数来选择早已定义好的方法。
index.html
- <!--// Created by bowen on 15-3-19.-->
- <!--// Copyright (c) 2014年 bowen. All rights reserved.-->
- <!DOCTYPE html>
- <html>
- <head lang="en">
- <meta charset="utf-8">
- <title></title>
- </head>
- <body>
- <p></p>
- <div>
- <button onclick="fn_open_camera();">拍照</button>
- </div>
- <p></p>
- <div>
- <button onclick="fn_call();">打电话</button>
- </div>
- <script>
- function fn_call(){
- //调用OC中的call方法
- window.location.href = 'bw://call';
- }
- function fn_open_camera(){
- //调用OC中的openCamera方法
- window.location.href = 'bw://camera';
- }
- </script>
- </body>
- </html>
- ViewController.m
- //
- // ViewController.m
- // JSCallOC
- //
- // Created by bowen on 15/11/17.
- // Copyright © 2015年 bowen. All rights reserved.
- //
- #import "ViewController.h"
- @interface ViewController ()<UIWebViewDelegate>
- @end
- @implementation ViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- [self createWebView];
- }
- - (void)createWebView
- {
- //1.创建WebView
- UIWebView *webView = [[UIWebView alloc] init];
- webView.frame = self.view.frame;
- webView.delegate = self;
- [self.view addSubview:webView];
- //2.加载网页
- NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"];
- NSURLRequest *request = [NSURLRequest requestWithURL:url];
- [webView loadRequest:request];
- }
- #pragma mark - UIWebViewDelegate
- - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
- {
- NSString *url = request.URL.absoluteString;
- NSRange range = [url rangeOfString:@"bw://"];
- NSUInteger loc = range.location;
- if (loc != NSNotFound) {
- //方法名
- NSString *method = [url substringFromIndex:loc + range.length];
- //转成SEL
- SEL sel = NSSelectorFromString(method);
- [self performSelector:sel withObject:nil];
- }
- return YES;
- }
- //打电话
- - (void)call
- {
- NSLog(@"call");
- }
- //照相
- - (void)camera
- {
- NSLog(@"camera");
- }
- @end
二、利用javascriptCore.framework库
废话不多说,现在看看如何在UIWebView的javascript中调用oc的方法
首先在建立一个UIWebView,代码如下:
- //
- // webview.m
- // login
- //
- // Created by wangdan on 15-3-19.
- // Copyright (c) 2015年 wangdan. All rights reserved.
- //
- #import "webview.h"
- #import <JavaScriptCore/JavaScriptCore.h>
- @implementation webview
- -(id)initWithFrame:(CGRect)frame
- {
- self=[super initWithFrame:frame];
- if( self ){
- self.webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 310, self.bounds.size.width, 300)];
- self.webview.backgroundColor=[UIColor lightGrayColor];
- NSString *htmlPath=[[NSBundle mainBundle] resourcePath];
- htmlPath=[htmlPath stringByAppendingPathComponent:@"html/index.html"];
- NSURL *localURL=[[NSURL alloc]initFileURLWithPath:htmlPath];
- [self.webview loadRequest:[NSURLRequest requestWithURL:localURL]];
- [self addSubview:self.webview];
- JSContext *context = [self.webview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
- context[@"log"] = ^() {
- NSLog(@"+++++++Begin Log+++++++");
- NSArray *args = [JSContext currentArguments];
- for (JSValue *jsVal in args) {
- NSLog(@"%@", jsVal);
- }
- JSValue *this = [JSContext currentThis];
- NSLog(@"this: %@",this);
- NSLog(@"-------End Log-------");
- };
- // [context evaluateScript:@"log('ider', [7, 21], { hello:'world', js:100 });"];
- }
- return self;
- }
- @end
(1)在上述代码中,使用javascriptCore.framework,首先使用UIWebview加载一个静态网页,并
使用
JSContext *context = [self.webview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
获取该UIWebview的javascript执行环境。
(2)在该javascript执行环境中,定义一个js函数,注意关键点来了
这个函数的执行体完全是 objective-c代码写的,也就是下面:
- context[@"jakilllog"] = ^() {
- NSLog(@"Begin Log");
- NSArray *args = [JSContext currentArguments];
- for (JSValue *jsVal in args) {
- NSLog(@"%@", jsVal);
- }
- JSValue *this = [JSContext currentThis];
- NSLog(@"-------End Log-------");
- };
(3)试想一下,在定义的webview中,如果使用js执行log这个函数,那么会不会调用上面oc中block段代码呢,答案是肯定的!
下面看看UIWebView 中所加载的 html及其js代码是如何写的
(4)index.html代码
- <!--// Created by wangdan on 15-3-19.-->
- <!--// Copyright (c) 2014年 wangdan. All rights reserved.-->
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="description" content="">
- <meta name="viewport" content="width=device-width; initial-scale=1.0">
- <script type="text/javascript" src="index.js"></script>
- </head>
- <button id="hallo" onclick="buttonClick()"> 点击button</button>
- </body>
- </html>
- 上面html定义了一个button,然后引用index.js,点击button的响应函数为buttonClick()
- 该函数在index.js中定义,如下
- function buttonClick()
- {
- jakilllog("hello world");
- }
意思是点击这个button,就调用jakilllog()函数,jakilllog()函数显然是我们在oc中实现的一个block段,
就是上述绿色部分的block段。
点击button会执行么?答案是肯定的。
下面上图
下图是执行的结果
点击html中的button,能够执行oc中的代码
说明直接从js调用oc的意图达到。
最近有很多朋友问我索要demo那么我把demo的地址上传到csdn
大家下载下来就很方便了。
转自:http://blog.csdn.net/j_akill/article/details/44463301
IOS-网络(网页开发-UIWebView,HTML,CSS,JavaScript,OC和JS代码互调)的更多相关文章
- iOS WKWebview 网页开发适配指南
iOS WKWebview 网页开发适配指南 微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配.如有问题,可参考文末联系方式,向我们 ...
- ios网络学习------4 UIWebView的加载本地数据的三种方式
ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
HTML代码: <html> <head> <title>HTML中用JS调用OC方法</title> <meta http-equiv=&quo ...
- iOS(UIWebView 和WKWebView)OC与JS交互 之二
在iOS应用的开发过程中,我们经常会使用到WebView,当我们对WebView进行操作的时候,有时会需要进行源生的操作.那么我记下来就与大家分享一下OC与JS交互. 首先先说第一种方法,并没有牵扯O ...
- [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]
原理: 1.JS调用OC 每次webview执行跳转时都会被iOS给拦截,执行下面函数获得系统允许. 因此可以根据跳转信息转给系统,执行相应功能,比如打开相册等. // 网页中的每一个请求都会被触发 ...
- iOS WKWebview 网页开发适配指南【转】
微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配.如有问题,可参考文末联系方式,向我们咨询. 背景 WKWebView 是苹果在iO ...
- 微信iOS WKWebview 网页开发适配指南
微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配. 背景 WKWebView 是苹果在iOS 8中引入的新组件,目的是提供一个现代的 ...
- (五十九)iOS网络基础之UIWebView简易浏览器实现
[UIWebView网络浏览器] 通过webView的loadRequest方法可以发送请求显示相应的网站,例如: NSURL *url = [NSURL URLWithString:@"h ...
- iOS 混合网页开发 问题
在利用JavaScriptCore与H5交互时出现异常提示: This application is modifying the autolayout engine from a background ...
随机推荐
- 字符串的partition函数
partition函数 str1='sdga2a34'aa=str1.partition('a') print(aa) """ ('sdg', 'a', '2a34') ...
- 网络爬虫Java实现抓取网页内容
package 抓取网页; import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream; ...
- Dictionary 初始化数据
Dictionary<string, string> dic = new Dictionary<string, string>() { { ...
- Lua的table库函数insert、remove、concat、sort详细介绍(转载)
函数列表: table.insert(table,[ pos,] value) table.remove(table[, pos]) table.concat(table[, sep[, i[, j] ...
- c++ 跳转语句块
p170~p172:跳转语句:1.break:对while for switcho有效!2.continue:中断当前迭代,但是循环还要继续.因此对while for有效,对switch无效!3.go ...
- Helloworld.JaVa 第一次编程
package Jc; class Jc1st { public static void main(String[] args) { System.out.println("Hello Wo ...
- 20145324 《Java程序设计》第3周学习总结
20145324 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 1.要产生对象必须先定义类,类是对象的设计图,对象是类的实例,建立实例要用new 2.参数名称与对象数据成员 ...
- 20145331 《Java程序设计》第3周学习总结
20145331 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 •对象(Object):存在的具体实体,具有明确的状态和行为 •类(Class):具有相同属性和行 ...
- 20145231熊梓宏 《网络对抗》 Bof逆向基础.shellcode注入
20145231网络对抗<逆向及Bof基础>shellcode注入 实验目的与要求 1.本次实践的对象是一个名为pwn1的linux可执行文件. 2.若该程序正常执行,则main函数会调用 ...
- ubuntu 16.04 gtx1060 显卡安装【转】
本文转载自:https://blog.csdn.net/u010925447/article/details/79754044 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...