<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head> <body> <button style="width:120px; height = 60px;" onclick="getImage();">插入图片</button> <script>
function getImage(){
// 生成接口(在OC在截取接口)
window.location.href = 'lf://getImage';
}
</script> </body>
</html>
#import "ViewController.h"

@interface ViewController ()<UIWebViewDelegate>

@property (nonatomic , strong) UIWebView *webView;
@property (nonatomic , copy) NSString *isIncreaseImg; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// 初始化webView
self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height)];
self.webView.delegate = self;
[self.view addSubview:self.webView]; // 加载本地网页
NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
[self.webView loadRequest:request];
} - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
// 截取接口
NSString *str = request.URL.absoluteString;
NSRange range = [str rangeOfString:@"lf://"];
// 如果发现接口,则执行相关操作
if (range.location != NSNotFound) {
[self htmlCallOC];
}
return YES;
} #pragma mark -- 操作网页 --
- (void)webViewDidFinishLoad:(UIWebView *)webView{
// 插入图片
if([self.isIncreaseImg isEqualToString:@"incareaseImage"]){
NSString *str4 = @"var img = document.createElement('img');"
"img.src = 'ply.png';"
"document.body.appendChild(img);";
[webView stringByEvaluatingJavaScriptFromString:str4];
self.isIncreaseImg = @"imageIsInceased";
}else{
NSLog(@"%@",self.isIncreaseImg);
}
} #pragma mark -- 执行相关操作 --
- (void)htmlCallOC{
NSLog(@"HTML成功调用OC");
if (self.isIncreaseImg ==nil) {
self.isIncreaseImg = @"incareaseImage";
}
[self webViewDidFinishLoad:self.webView];
} @end

在HTML中调用iOS的更多相关文章

  1. Titanium中调用ios组件时语言不是本地化的解决方法

    用Titanium开发的ios应用中,当调用系统组件时,尽管手机已经设置了系统语言为中文,但那些组件的界面却仍为英文.比如调用iphone中的相册组件,其界面为: 那么怎么让它跟系统语言保持一致呢? ...

  2. IOS中调用系统的电话、短信、邮件、浏览功能

    iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...

  3. ios开发--网页中调用JS与JS注入

    先将网页弄到iOS项目中: 网页内容如下, 仅供测试: <html> <head> <meta xmlns="http://www.w3.org/1999/xh ...

  4. 【iOS】网页中调用JS与JS注入

    非常多应用为了节约成本,做出同一时候在Android与iOS上都能使用的界面,这时就要使用WebView来做.Android和IOS上都有WebView,做起来非常省事.当然这时就要考虑怎样在Andr ...

  5. iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )

    在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用:

  6. iOS 在object-c 中调用c文件 方法

    1,新建c 头文件  lib.h 定义 c 函数 2,新建 c 实现文件,新建模板选中 c File  lib.c 3,oc 中调用,引用 c 头文件 lib.h ok .搞定

  7. iOS:在OC中调用JS脚本

    示例一:在webView中调用js脚本进行搜索 1.首先导入JavaScriptCore.framework这个框架 2.创建webView.设置代理.请求手机端百度 #import "Vi ...

  8. Unity3d调用iOS陀螺仪

    How to write gyroscope controller with Unity3d http://blog.heyworks.com/how-to-write-gyroscope-contr ...

  9. Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件)

    Phonegap项目,做支付的时候,当把网站打包到ios或android端成app后,在app上通过wap调用银联在线存在一个问题: 就是当从银联支付成功后,再从服务器返回到app客户端就很难实现. ...

随机推荐

  1. POI格式化Cell样式

    通过一个实例演示怎样通过POI设置Excel单元格的边框.字体.颜色.大小.下划线.合并.对齐方式. Excel文件如下: Java代码   package my.excel;       impor ...

  2. windows2003下安装apache

    php建议在http://www.apachelounge.com/ 下载apache的二进制版本,因为提供了不同VC版本.不懂,照做. 因为是在虚拟机2003上面搞的,需要装VC2010版本. 下载 ...

  3. Maven 创建多模块工程

    1. 创建父项目 new -->project-->maven-->maven Project,然后下一步, 进入new maven Project的Select project n ...

  4. mysql IN 比等价的OR写法效率更高

  5. Latex公式换行、对齐

    http://blog.sina.com.cn/s/blog_64827e4c0100vnqu.html 换行后等式对齐 \begin{equation}\begin{aligned}R(S_2)&a ...

  6. JDBC 增删查改

    public class MemberDaoImpl implements MemberDao { private Connection conn = null; public MemberDaoIm ...

  7. mysql 5.5 5.6配置日志

    5.5(linux) [mysqld]#loglog-output=FILEgeneral-log #开启普通日志general-log_file = /tmp/mysqllog/gen.log #设 ...

  8. startActivityForResult的用法和demo

    [转]startActivityForResult的用法和demo 博客分类:  java 移动开发 有时候我们需要把A activity提交数据给B  activity处理,然后把结果返回给A 这种 ...

  9. C++ 中static 使用大全

    /// 静态全局变量 :只能在当前cpp中访问到  static int s_global = 0; void funcA() {      /// 静态局部变量 (函数静态变量) 初始化过一次就不会 ...

  10. 【转】配置 VS 2015 开发跨平台手机应用

    为了使用 VS 2015 开发跨平台手机应用,VS 2015 装了很多次,遇到了很多坑,才终于弄明白怎样配置才能正常使用C#开发手机应用,现把步骤分享给大家,以免大家少走弯路. 运行环境: Windo ...