android能很方便的使用jsinterface来实现使用javascript调用android的方法。
但是iphone的uiwebview貌似没有这样的简便的方法。
它的实现大致思想是:每一个js方法都是通过重新提交了一个http请求,请求的src使用特定的前缀,然后将方法名和参数以及回调地址编入src中,然后使用
- (BOOL)webView:(UIWebView *)webView2
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
来的request的请求路径来进行拦截,从而解析出要调用的方法名,参数和返回地址。
返回地址其实只是一个int变量,js调用的方法的时候,将全局int变量counter加1从而作为该方法返回地址。通过使用uiwebview的performSelectorOnMainThread方法来调用js方法执行
[self performSelectorOnMainThread:@selector(stringByEvaluatingJavaScriptFromString:) withObject:str waitUntilDone:NO];
注明:下面这个例子是使用iframe来重新提交请求,src的前缀为JS-FRAME
参考文章:
http://blog.techno-barje.fr/post/2010/10/06/UIWebView-secrets-part3-How-to-properly-call-ObjectiveC-from-Javascript/
附:objective-C调用JS方法。
// In your Javascript files:
function myJavascriptFunction () {
// Do whatever your want!
}
// -----------------------------------
// And in your Objective-C code:
// Call Javascript function from Objective-C:
[webview stringByEvaluatingJavaScriptFromString:@"myJavascriptFunction()"];
分享到:
相关推荐
"Demo.zip_DEMO_iphone_uiwebview_uiwebview demo_uiwebview video"这个标题暗示了我们正在讨论的是一个关于在iPhone应用中使用UIWebView播放视频的示例项目。 UIWebView是Apple提供的一个类,它是UIKit框架的一...
这个"UIWebView与javascript的交互"的标题暗示了我们正在探讨如何在iOS应用中利用UIWebView与嵌入的HTML页面进行双向通信,即通过Objective-C/Swift代码与JavaScript代码相互调用。这种交互能力使得开发者可以充分...
在iOS开发中,UIWebView是用于展示网页内容的组件,它允许我们在应用程序中嵌入HTML、CSS和JavaScript代码。然而,频繁的网络请求可能导致用户体验下降,特别是在离线或网络不稳定的情况下。为了解决这个问题,...
5. **JavaScript与Objective-C交互**:UIWebView还支持JavaScript与Objective-C的交互,通过`- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:...
1. **Objective-C与JavaScript交互**:在iOS应用中,我们可以使用`UIWebView`的`stringByEvaluatingJavaScriptFromString:`方法来执行JavaScript代码。这个方法接收一个字符串参数,该字符串是你要在网页中运行的...
2. Objective-C调用JavaScript:如果要在JavaScript中响应原生事件,可以设置UIWebView的`WKUserContentController`,注册一个用户脚本,并监听`WKScriptMessage`。当JavaScript触发特定事件时,会发送消息到...
【UIWebViewDemo】是一个针对iOS开发的简单示例项目,主要展示了如何在iPhone应用中集成并使用`UIWebView`组件。`UIWebView`是苹果提供的一个原生控件,允许开发者在应用程序内部加载和显示HTML内容,从而实现网页...
iOS 7以后,苹果引入了JavaScriptCore框架,它提供了一种在Objective-C或Swift中执行JavaScript代码的方法。通过`WKWebView`(UIWebView的替代品),可以直接操作JavaScriptContext,但UIWebView仍然可以通过`...
由于UIWebView不支持直接播放GIF动画,我们需要借助JavaScript或者第三方库来实现。一种常见方法是将GIF转换为一系列静态图片,然后用JavaScript动态切换图片来模拟动画效果。另一种方法是使用第三方库,如`...
方法,可以在objective-c代码中调用javascript代码,参数script字符串保存了所要执行的js代码字符串,执行结果以字符串形式返回。以获取web页面标题为例,代码如下: ? 1 NSString *pageTitle = [webView ...
5. **JavaScript交互**:UIWebView支持与JavaScript的交互,你可以通过`stringByEvaluatingJavaScriptFromString:`方法执行JavaScript代码,并获取返回结果。这对于获取网页上的数据或改变网页状态非常有用。 6. **...
UIWebView支持与JavaScript进行交互,你可以通过`stringByEvaluatingJavaScriptFromString:`方法执行JavaScript代码并获取结果: ```swift webView.stringByEvaluatingJavaScript(from: "document.title") ``` ...
UIWebView提供了一个名为`stringByEvaluatingJavaScriptFromString:`的方法,允许我们在Objective-C代码中执行JavaScript代码,从而获取网页中的信息。在这个例子中,我们需要获取图片的URL或数据,可以利用...
通过`WKWebView`(UIWebView的替代品,但这里我们仍讨论UIWebView)的`stringByEvaluatingJavaScriptFromString:`方法,可以在运行时执行任意JavaScript代码。 2. 原生调用JavaScript: - `...
它可以加载HTML、CSS和JavaScript代码,并且具有与Objective-C(OC)代码进行交互的能力。本项目"UIWebView和js交互demo1"就是展示了如何利用UIWebView进行 OC与JS之间的通信,实现两者之间的数据交换和功能调用。 ...
4. **JavaScript交互**:UIWebView支持与JavaScript的交互,你可以通过`stringByEvaluatingJavaScriptFromString:`方法执行JavaScript代码并获取结果。这在你需要获取网页数据或操作DOM时非常有用。 5. **处理错误*...
UIWebView提供了与JavaScript代码交互的能力,这主要通过`stringByEvaluatingJavaScriptFromString:`方法实现。你可以执行任何有效的JavaScript代码,并获取其返回值(如果有的话)。 ```swift let jsCode = ...
本篇将深入探讨UIWebView与JavaScript的交互机制,以及在实际应用中的注意事项。 一、UIWebView的简介 UIWebView是UIKit框架的一部分,它允许我们在iOS应用中内嵌一个浏览器视图,显示HTML、CSS和JavaScript编写的...
UIWebView是Objective-C中的一个类,它是UIKit框架的一部分。通过UIWebView,开发者可以加载URL、显示HTML字符串,甚至执行JavaScript代码。UIWebView提供了`loadRequest:`方法来加载URL请求,`...