框架:

webview与js的通信框架

#import "MJViewController.h"
#import "MBProgressHUD+Add.h"@interface MJViewController ()@end@implementation MJViewController- (void)viewDidLoad
{[super viewDidLoad];[self loadRemoteHTML];
}#pragma mark 加载远程的HTML页面
- (void)loadRemoteHTML {NSURL *url = [NSURL URLWithString:@"http://192.168.1.106:8080/MJServer/"];self.webView.delegate = self;[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}#pragma mark 加载其他文件
- (void)loadRemoteTxt {NSURL *url = [NSURL URLWithString:@"http://192.168.1.106:8080/MJServer/abc.txt"];self.webView.delegate = self;[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}#pragma mark 加载PDF文件
- (void)loadLocalPDF {//[self.webView loadData:<#(NSData *)#> MIMEType:<#(NSString *)#> textEncodingName:<#(NSString *)#> baseURL:<#(NSURL *)#>];
    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/第10章-网络.pdf"];self.webView.delegate = self;[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}#pragma mark 加载HTML字符串
- (void)loadHTMLString {NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Pictures"];[self.webView loadHTMLString:@"<html><body><img src='lufy.png'></body></html>" baseURL:url];
}#pragma mark - webview代理方法
- (void)webViewDidStartLoad:(UIWebView *)webView {NSLog(@"开始加载页面");[MBProgressHUD showMessag:@"哥正在帮你加载..." toView:self.view];
}- (void)webViewDidFinishLoad:(UIWebView *)webView {NSLog(@"页面加载完毕");[MBProgressHUD hideHUDForView:self.view animated:YES];self.backItem.enabled = self.webView.canGoBack;self.forawrdItem.enabled = self.webView.canGoForward;self.titleItem.title = [self.webView stringByEvaluatingJavaScriptFromString:@"document.title"];//[self.webView stringByEvaluatingJavaScriptFromString:@"fn();"];
}
#pragma mark webview每次加载之前都会调用这个方法
// 如果返回NO,代表不允许加载这个请求
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {// 说明协议头是iosif ([@"ios" isEqualToString:request.URL.scheme]) {NSString *url = request.URL.absoluteString;NSRange range = [url rangeOfString:@":"];NSString *method = [request.URL.absoluteString substringFromIndex:range.location + 1];SEL selector = NSSelectorFromString(method);if ([self respondsToSelector:selector]) {[self performSelector:selector];}return NO;}return YES;
}#pragma mark - 提供一个接口方法给JS调用
- (void)openCamera {NSLog(@"打开了照相机");
}- (void)call {NSLog(@"打电话");
}#pragma mark - 按钮方法
#pragma mark 前进
- (void)forawrd {[self.webView goForward];
}
#pragma mark 后退
- (void)back {[self.webView goBack];
}
@end

服务端的用法

转载于:https://www.cnblogs.com/gcb999/p/3178728.html

ios中webview的高级用法(二)相关推荐

  1. 详解Vue中watch的高级用法

    转载自  详解Vue中watch的高级用法 我们通过实例代码给大家分享了Vue中watch的高级用法,对此知识点有需要的朋友可以跟着学习下. 假设有如下代码: 1 2 3 4 5 6 7 8 9 10 ...

  2. Excel表格中替换的高级用法

    Excel表格中替换的高级用法 目录 Excel表格中替换的高级用法 1.例如:将F列中合格替换为不合格 2. 在[开始]选项卡中,找到[替换]点击,在查找内容中输入[合格]替换为中输入[不合格],勾 ...

  3. aspect 方法入参 获取_谈谈Spring AOP中@Aspect的高级用法示例

    前言 本文主要跟大家分享介绍了关于Spring AOP中@Aspect的高级用法,下面话不多说了,来随着小编一起看看详细的介绍吧. 1 切点复合运算 支持在切点定义中加入以下运算符进行复合运算: 运算 ...

  4. Hive中COUNT的高级用法(条件过滤等)

    在HIVE中,除了COUNT(*)外,COUNT还可以有很多高级用法. SELECTtype, count(*), count(DISTINCT u), count(CASE WHEN plat=1 ...

  5. ios 中webView加载html文本图片显示不全

    在iOS开发过程中,用webView显示富文本内容是很常见的需求,加载富文本时通常还要根据webView的高度动态计算cell的高度(例如我们要在tableView或者collectionView的某 ...

  6. SQL语句中的select高级用法

    #转载请联系 为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+------ ...

  7. 圆形渐变shader_Flutter 中渐变的高级用法

    Flutter 中渐变有三种: LinearGradient:线性渐变 RadialGradient:放射状渐变 SweepGradient:扇形渐变 看下原图,下面的渐变都是在此图基础上完成. Li ...

  8. 运维自动化之----ansible中play的高级用法模板(7)

    4.9 template模板 模板是一个文本文件,可以做为生成文件的模板,并且模板文件中还可嵌套jinja用法 4.9.1 jiaja2语言 jinja2语言使用字面,有下面形成 字符串:使用单引号或 ...

  9. Python3中print的高级用法——print中执行命令和函数:print(*meta)

    最近在学<PythonLinux系统管理和自动化运维>这本书,看到第48页,书里面一个代码引起了我的兴趣: ... meta = [fileinput.filename(), filein ...

  10. js中“||”和“”的高级用法 js,与或运算符 || 妙用

    网络上找到的一篇关于逻辑与和逻辑或的文章,详细记录一下. http://www.jb51.net/article/21339.htm 例1:用于赋值 &&:从左往右依次判断,当当前值为 ...

最新文章

  1. Puppeteer爬虫初探
  2. 菜鸟教程python位运算符_NumPy 位运算
  3. html里table的scope,HTML表格的运用
  4. Java-自定义注解
  5. 求最小连续和(洛谷P1614题题解,Java语言描述)
  6. JAVA中整数类型数据溢出问题研究
  7. javascript:使用canvas绘图2D图形
  8. Vivado MMCM IP核接口信号介绍
  9. 「分布式系统理论」系列专题整理
  10. java css文件预处理_浅谈 CSS 预处理器: 为什么要使用预处理器?
  11. 【OCR】AspriseOCR C# 英文、数字识别(中文不行)
  12. 如何将长截图转换成TXT呢?
  13. c++语言计算2的n次方,2的N次方
  14. 计算机视觉:视频分解图片和图片合成视频
  15. js 通过图片链接获取file对象
  16. 2021-2025年中国服装合同制造的物流行业市场供需与战略研究报告
  17. clickhouse表引擎-合并树系列
  18. yaml文件 *.yml 写法简介
  19. 从数字城市迈向智能城市
  20. 台式机通过网线与使用wifi的笔记本上网

热门文章

  1. PHP foreach使用 引用 的坑
  2. java.lang.SecurityException: class “org.bouncycastle.asn1.DERObject“‘s signer information does not m
  3. JAVA格式化输出字串
  4. USB的速度还是不够快
  5. LINUX使用消息队列的代码
  6. MySQL的初次使用
  7. 安卓编解码的分辨率问题
  8. 计算机虚拟仪器技术与测试技术相关的概念,虚拟测试技术概念辨析.pdf
  9. linux下编译fortran非法字符,linux下fortran中編譯代碼時“undefined reference to `_gfortran_st_”錯誤...
  10. mysql sumif优化,sumif函数的使用方法