关键词:
HTML代码: <html> <head> <title>HTML中用JS调用OC方法</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> [removed] function openAlbum() { // 打开相册(openMyAlbum为OC中的方法) [removed].href = ‘ios://openMyAlbum‘; } function openCamera() { // 打开相机(openMyCamera为OC中的方法) [removed].href = ‘ios://openMyCamera‘; } [removed] </head> <body> <br/> <br/> <br/> <input type="button" value="打开相机"> <br><br/> <input type="button" value="打开相册"> </body> </html> OC代码: #import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> @property (weak, nonatomic) IBOutlet UIWebView *webview; - (IBAction)getTitle; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSURL *url = [[NSBundle mainBundle] URLForResource:@"test.html" withExtension:nil]; [self.webview loadRequest:[NSURLRequest requestWithURL:url]]; self.webview.delegate = self; self.webview.dataDetectorTypes = UIDataDetectorTypeAll; } #pragma mark UIWebViewDelegate方法 /** *开始加重请求拦截 */ -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *urlstr = request.URL.absoluteString; NSRange range = [urlstr rangeOfString:@"ios://"]; if (range.length!=0) { NSString *method = [urlstr substringFromIndex:(range.location+range.length)]; SEL selctor = NSSelectorFromString(method); [self performSelector:selctor withObject:nil]; } return YES; } /** * OC执行JS代码 */ - (IBAction)getTitle { [self.webview stringByEvaluatingJavaScriptFromString:@"alert(document.title);"]; } -(void)openMyAlbum { UIImagePickerController *vc = [[UIImagePickerController alloc]init]; vc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:vc animated:YES completion:nil]; } -(void)openMyCamera { UIImagePickerController *vc = [[UIImagePickerController alloc]init]; vc.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentViewController:vc animated:YES completion:nil]; } @end
ios下js与oc互相调用--uiwebview拦截url
....csdn.net/u011619283/article/details/52135977 最近准备把之前用UIWebView实现的JS与原生相互调用功能,用WKWebView来替换。顺便搜索整理了一下JS与OC交互的方式,非常之多啊。目前我已知的JS与OC交互的处理方式: *1.在JS中做一次URL跳... 查看详情
uiwebview中js与oc交互webviewjavascriptbridge的使用
...。二、原理 在iOS中,本地调用Javascript语言,是通过UIWebView中的实例方法stringByEvaluatin 查看详情
如何在ios平台上使用js直接调用oc方法
...2、将此html文件放到项目代码目录里面,如图:3、拖一个UIWebView控件和UIButton控件到xxxViewController对应的.xib或.storyboard视图的UIView上;在xxxViewController的.h文件中分别声明UIWebView类型变量和UIButton类型的变量,以及一个按钮点击事... 查看详情
如何在ios平台上使用js直接调用oc方法
...2、将此html文件放到项目代码目录里面,如图:3、拖一个UIWebView控件和UIButton控件到xxxViewController对应的.xib或.storyboard视图的UIView上;在xxxViewController的.h文件中分别声明UIWebView类型变量和UIButton类型的变量,以及一个按钮点击事... 查看详情
iosjs和oc交互/js和native相互调用
现在app上越来越多需求是通过UIWebView来展示html或者html5的内容,js和nativeOC代码交互就非常常见了.js调用native OC代码第一种机制(1)最常用的是利用-(BOOL)webView:(UIWebView*)webViewshouldStartLoadWithRequest:(NSURLRequest*)requestnavigationType:(UI 查看详情
ios下js与oc互相调用--wkwebview拦截url
在第一篇文章 iOS下JS与OC互相调用(一)中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互。由于UIWebView比较耗内存,性能上不太好,而苹果在iOS8中推出了WKWebView。同样的用WKWebView也可以拦截URL,做JS与OC交互。关于WKWebView与U... 查看详情
iosjs交互之利用系统jscontext实现js调用oc方法
iosjs交互分为两块:1.oc调用js 这一块实现起来比较简单,我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择拷贝到工程中,(拖入的文件夹是蓝色的,相对路径),不然css,js的路径... 查看详情
iosjs交互之利用系统jscontext实现js调用oc方法
iosjs交互分为两块:1.oc调用js 这一块实现起来比较简单,我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择如下操作,(拖入的文件夹是蓝色的,相对路径),不然css,js的路径会存在问... 查看详情
ios怎么实现点击webview按钮调用oc代码
参考技术A每次点击网页中的按钮都会刷新UIWebView,并且会走-(BOOL)webView:(UIWebView*)webViewshouldStartLoadWithRequest:(NSURLRequest*)requestnavigationType:(UIWebViewNavigationType)navigationType;这个代理方法里面可以判断那条链接,来判断点击了哪个按钮... 查看详情
转载--基于原生js与oc方法互相调用并传值(附html代码)
...户端,也就是js交互,其实再说明白一点就是方法的互相调用而已。本文叙述下如何进行原生的JavaScript交互本文包括JS调用OC方法并传值,OC调用JS方法并传值本来想把html放进服务器里面,然后访问,但是觉得如果html在本地加载... 查看详情
oc与js的交互(ios与h5混编)
...移动端与H5混编的使用场景。iOS中加载html网页,可以使用UIWebView或WKWebView.本篇博客将介绍两种控件使用过程中如何实现OC与JS的交互。UIWebViewdelegate协议方法//网页即将开始加载-(BOOL)webView:(UIWebView*)webViewshouldStartLoadWithRequest:(NSURLRe... 查看详情
使用 UIWebView 从 HTML 代码调用目标 c 代码中的方法
】使用UIWebView从HTML代码调用目标c代码中的方法【英文标题】:InvokemethodinobjectiveccodefromHTMLcodeusingUIWebView【发布时间】:2013-03-1008:39:00【问题描述】:我的iOS应用中有.html文件。HTML文件几乎没有带有onClick方法的div块。当我点击这... 查看详情
javascript和ios交互遇到的坑
...地方法自然就失效了。如果我们在-(void)webViewDidFinishLoad:(UIWebView )webView方法中注入JS,看起来貌似可以解决重定向之后调用失效的问题,因为webView每次加载完成后都会回调-(void)webViewDidFinishLoad:(UIWebView )webView,也就是... 查看详情
如何在ios平台上使用js直接调用oc方法
在Cocos2d-JSv3.0RC2中,与Android上js调用Java一样,Cocos2d-JS也提供了在iOS和Mac上js直接调用Objective-C的方法,示例代码如下: 1varojb=jsb.reflection.callStaticMethod(className,methodNmae,arg1,arg2,.....); 在jsb.reflection.callStaticMethod方法中,我... 查看详情
在 UIWebview 的 didStartLoad 方法中注入 JS
】在UIWebview的didStartLoad方法中注入JS【英文标题】:InjectingJSinUIWebview\'sdidStartLoadmethoad【发布时间】:2015-01-0810:29:06【问题描述】:在我的UIWebView中注入javascript时遇到一个奇怪的问题。我能够将JS字符串注入UIWebViewwebViewDidStartLoad... 查看详情
js与原生oc/swift相互调用总结(代码片段)
代码地址如下:http://www.demodashi.com/demo/12754.htmlJS-OC-SwiftJS和OC/Swift相互调用,主要总结了JS和OC交互的三种方式1.使用UIWebView,利用JavaScriptCore实现2.使用WKWebView,利用WKScriptMessageHandler实现3.使用第三方框架WebViewJavascriptBridge实现部分效 查看详情
UICollectionViewCell里面的UIWebView不调用Delegate方法
】UICollectionViewCell里面的UIWebView不调用Delegate方法【英文标题】:UIWebViewinsideUICollectionViewCelldoesnotcallDelegateMethod【发布时间】:2013-01-1314:54:57【问题描述】:我目前正在UICollectionViewCell中嵌入UIWebView,以便能够查看驻留在本地数据... 查看详情
iOS:在 UIWebview 中使用 javascript 调用 obj-c 方法
】iOS:在UIWebview中使用javascript调用obj-c方法【英文标题】:iOS:callobj-cmethodsusingjavascriptinaUIWebview【发布时间】:2013-01-2209:09:14【问题描述】:我正在编写一个与JS网页协作的函数。我使用UIWebView来包含网页,然后当我希望网页与... 查看详情