TGJSBridge使用
、在ViewController.h中 #import <UIKit/UIKit.h> #import "TGJSBridge.h" @interface BaseViewController : UIViewController<TGJSBridgeDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UIGestureRecognizerDelegate,UIWebViewDelegate> @property(nonatomic,strong)TGJSBridge *jsBridge; @property(nonatomic,strong)UILabel *btnLabel; @end 、在ViewController.m中 #import "BaseViewController.h" @interface BaseViewController () { UIWebView *webView; UIImagePickerController *picker; UIPopoverController *popPicture; } @end @implementation BaseViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; //UIWebView初始化 webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , , )]; webView.layer.borderWidth = ; NSURL *url = [[NSBundle mainBundle] URLForResource:@"demo" withExtension:@"html"]; [webView loadRequest:[NSURLRequest requestWithURL:url]]; //TGJSBridge配置 self.jsBridge = [TGJSBridge jsBridgeWithDelegate:self]; webView.delegate = self.jsBridge; // [self.jsBridge postNotificationName:@"demo" userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"before load",@"message", nil] toWebView:webView]; //UILabel初始化 self.btnLabel = [[UILabel alloc] initWithFrame:CGRectMake(, , , )]; self.btnLabel.backgroundColor = [UIColor redColor]; self.btnLabel.text = @"我要变身" //UIImagePickerView初始化 picker = [[UIImagePickerController alloc] init]; picker.delegate = self; [webView reload]; [self.view addSubview:webView]; [self.view addSubview:self.btnLabel]; [self.view addSubview:webView]; } #pragma mark - TGJSBridgeDelegate -(void)jsBridge:(TGJSBridge *)bridge didReceivedNotificationName:(NSString *)name userInfo:(NSDictionary *)userInfo fromWebView:(UIWebView *)webview { NSLog(@"%@",name); picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; picker.allowsEditing = YES; [self presentViewController:picker animated:YES completion:nil]; self.btnLabel.text = [userInfo objectForKey:@"message"]; } #pragma mark - UIImagePickerViewControllerDelegate -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSString *url =[info objectForKey:UIImagePickerControllerReferenceURL]; NSLog(@"%@",url); NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithCapacity:]; [dic setValue:@"" forKey:@"message"]; [self.jsBridge postNotificationName:@"demo" userInfo:dic toWebView:webView]; [self dismissViewControllerAnimated:YES completion:nil]; } @end 在demo.html中 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>JSBridge Test</title> <script src="./TGJSBridge.bundle/TGJSBridge.js"></script> <script src="jquery.min.js"></script> <body> <div style="margin-top:50px;"> <input type="button" name="" value="点我" id="ss" onclick="process()" /> <img src="1.jpg" id = "image"> </div> <script type="text/javascript"> function log(text){ alert(text); } var click_count = ; function process() { alert(); jsBridge.postNotification('oc',{message:'hello oc:'+click_count++}); } jsBridge.bind('demo', function(object){ log(object.message); // alert(1); }); </script> </body> </html>
附TGJSBridge git地址:https://github.com/ohsc/TGJSBridge
TGJSBridge使用的更多相关文章
随机推荐
- CentOS部署pyspider
0x00 环境 阿里云ECS云服务器 CPU:1核 内存:2G 操作系统:Centos 7.3 x64 地域:华北 2(华北 2 可用区 A) 系统盘:40G 0x01 安装依赖 yum instal ...
- Mysql、MongoDB对比和使用场景
MongoDB: 更高的写入负载 默认情况下,MongoDB更侧重高数据写入性能,而非事务安全,MongoDB很适合业务系统中有大量“低价值”数据的场景.但是应当避免在高事务安全性的系统中使用Mong ...
- JVM笔记10-性能优化之高级特性
一.垃圾回收器配置和 GC 日志分析 1.堆典型配置: 32位的操作系统限制堆大小介于1.5G到2G,64位操作系统无限制,同时系统可用虚拟内存和可用物理内存都会限制最大堆的配置. 堆空间分配典型配置 ...
- 【精】EOS智能合约:system系统合约源码分析
系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源.命名拍卖.基础数据准备.生产者信息.投票等能力.本篇文章将会从源码角度详细研究system合约. 关键字:EOS,eosio.syst ...
- Kafka的通讯协议
Kafka的通讯协议 标签:kafka Kafka的Producer.Broker和Consumer之间采用的是一套自行设计的基于TCP层的协议.Kafka的这套协议完全是为了Kafka自身的业务需求 ...
- 配置IIS的负载均衡
在大型Web应用系统中,由于请求的数据量过大以及并发的因素,导致Web系统会出现宕机的现象,解决这一类问题的方法我个人觉得主要在以下几个方面: 1.IIS 负载均衡. 2.数据库 负载均衡. 3.系统 ...
- [PHP] 算法-数组重复数字统计的PHP实现
在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为7的数组{ ...
- 【Dubbo&&Zookeeper】4、 Java实现Dubbo服务提供者及消费者注册
转自:http://blog.csdn.net/u010317829/article/details/52128852 创建Mavn工程.HelloDubbo. pom.xml添加dubbo及spri ...
- java基础-配置java的环境变量
学习java之前首先在https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html上面下载与 ...
- bootstrap网站后台从设计到开发之登录
节后综合征缓了两天,今天把登录界面的主要后台代码分享给大家. protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPo ...