`
lxj8749
  • 浏览: 66621 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

UIWebView与JavaScript的交互

    博客分类:
  • ios
 
阅读更多

      实质上oc与js的通信交互就是发送消息,也即函数调用,只要在交互的过程正确的指定好对方需要调用的函数和参数就ok
      oc-->js  stringByEvaluatingJavaScriptFromString,其参数是一NSString 字符串内容是js代码(这又可以是一个js函数、一句js代码或他们的组合),当js函数有返回值或一句js代码有值返回可通过stringByEvaluatingJavaScriptFromString的返回值获取
    js-->oc 利用webView的重定向原理(即重新在js中指定document.location的值,此为一url),只要在这个url字符串中按自定义的规则指定好所需调用oc中的函数和参数,然后通过OC中的shouldStartLoadWithRequest函数去捕获处理请求,处理完最后,如果js还想获取一些返回参数的话,同样让oc去通过stringByEvaluatingJavaScriptFromString调用刚js传过来的回调js函数就行,顺道把参数也一起传了,完美!!!

 

1、UIWebView的 stringByEvaluatingJavaScriptFromString方法

2、UIWebViewDelegate的

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType方法

代码实例

1)加载页面

 

[plain] view plaincopy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     NSString *path = [[NSBundle mainBundle] pathForResource:@"jm/info" ofType:@"html"];  
  5.     NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]];  
  6.     [self.webView loadRequest:request];  
  7. }  
 

2)设置委托-接收js请求并回调js方法

 

 

[plain] view plaincopy
  1. #pragma mark - UIWebViewDelegate  
  2.   
  3. - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType  
  4. {  
  5.     if([request.mainDocumentURL.relativePath isEqualToString:@"/getInfo/name"])  
  6.     {  
  7.         NSString *info = [[UIDevice currentDevice] name];  
  8.         NSString *js = [NSString stringWithFormat:@"showInfo(\"name\",\"%@\")",info];  
  9.         [self.webView stringByEvaluatingJavaScriptFromString:js];  
  10.         return false;  
  11.     }  
  12.     if([request.mainDocumentURL.relativePath isEqualToString:@"/getInfo/systemVersion"])  
  13.     {  
  14.         NSString *info = [[UIDevice currentDevice] systemVersion];  
  15.         NSString *js = [NSString stringWithFormat:@"showInfo(\"systemVersion\",\"%@\")",info];  
  16.         [self.webView stringByEvaluatingJavaScriptFromString:js];  
  17.         return false;  
  18.     }  
  19.     return true;  
  20. }  
 

3)JS代码

 

<!DOCTYPE html>
<html>
<head>
<title>city</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="jquery.mobile-1.0.css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.mobile-1.0.js"></script>
<script>
function getInfo(name)
{
window.location = "/getInfo/"+name;
}
function showInfo(id,info)
{
$("p#"+id).html(info);
}
</script>
</head>
<body>
<div data-role="page">
<div data-role="content">
<h2>Divice Info</h2>
<div data-role="collapsible-set" data-theme="c" data-content-theme="d">
<div data-role="collapsible">
<h3 onclick="getInfo('name')">name</h3>
<p id="name"></p>
</div>
<div data-role="collapsible">
<h3 onclick="getInfo('systemVersion')">systemVersion</h3>
<p id="systemVersion"></p>
</div>
</div>
</div>
</div>
</body>
</html>

分享到:
评论

相关推荐

    UIWebView与 javascript的交互

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于在应用内展示网页内容。这个"UIWebView与...通过理解并实践UIWebView的JavaScript交互机制,开发者可以创建出既具有Web动态性又具备原生应用性能的iOS应用。

    UIWebView与 javascript的交互三

    1. **Objective-C与JavaScript交互**:在iOS应用中,我们可以使用`UIWebView`的`stringByEvaluatingJavaScriptFromString:`方法来执行JavaScript代码。这个方法接收一个字符串参数,该字符串是你要在网页中运行的...

    UIWebView原生与H5交互

    一、UIWebView与JavaScript交互 1. JavaScriptCore框架:苹果提供了JavaScriptCore框架,使得iOS应用可以直接执行JavaScript代码并获取结果。通过`WKWebView`(UIWebView的替代品,但这里我们仍讨论UIWebView)的`...

    UIWebview与JavaScript交互

    本文将深入探讨UIWebView与JavaScript之间的交互,并介绍一个名为SwiftWebViewBridge的开源项目,该项目由ShawnFoo开发,提供了Swift版本的WebViewJavascriptBridge,使得Swift与JavaScript的通信更加便捷。...

    oc中UIWebView交互 JS交互

    二、JavaScript交互基础 1. stringByEvaluatingJavaScriptFromString方法:这是UIWebView的核心方法,通过该方法,我们可以向网页中的JavaScript发送命令并获取返回的结果。例如,我们可以在JavaScript中定义一个...

    UIWebView与 javascript的交互二

    这篇教程主要探讨了UIWebView与JavaScript的交互,这是构建混合式移动应用的关键技术之一。UIWebView不仅可以展示HTML页面,还能与Objective-C(OC)代码进行通信,从而实现网页与原生应用的深度集成。 一、...

    UIWebView与JS交互小例子

    它可以加载HTML、CSS和JavaScript代码,并且支持与Objective-C代码进行交互,实现App与Web页面的深度融合。本示例将深入探讨如何通过UIWebView实现App与JS的双向通信。 一、APP向JS提交信息 在iOS应用中,我们可以...

    UIWebView和js交互

    本教程将深入探讨UIWebView与JavaScript的交互机制,帮助开发者更好地理解和运用这一功能。 1. UIWebView的基本使用: UIWebView可以通过代码或Storyboard添加到项目中。创建实例后,可以通过`loadRequest:`方法...

    UIWebView和js交互demo1

    本项目"UIWebView和js交互demo1"就是展示了如何利用UIWebView进行 OC与JS之间的通信,实现两者之间的数据交换和功能调用。 一、UIWebView基本使用 UIWebView的使用主要包括初始化、加载网页内容以及设置代理。首先...

    iOS WebView与Js 交互Demo

    以上就是iOS应用使用UIWebView与JavaScript交互的基本流程。在"WebViewDemo"项目中,你可以看到这些概念的实际应用。通过这样的交互,开发者可以实现诸如调用JavaScript函数、获取网页数据、控制网页行为等功能,使...

    UIWebView和js交互demo2

    为了实现原生代码与JavaScript的交互,我们可以使用UIWebView的两个关键方法:` stringByEvaluatingJavaScriptFromString:`和`addScriptMessageHandler:name:`。前者允许我们在网页内容已经加载后执行任意的...

    IOS WebView与JavaScript交互实现Web App

    本篇文章将深入探讨如何在iOS中使用`UIWebView`加载bundle内的HTML文件,并实现WebView与JavaScript的交互。 首先,我们需要了解`UIWebView`的基本用法。`UIWebView`是一个视图类,可以显示和加载网页内容。我们...

    UIWebView下OC与JS交互

    总之,"UIWebView下OC与JS交互"是iOS开发中的重要技术,它允许我们利用JavaScript的灵活性和OC的强大功能相结合,创建出更丰富的用户体验。通过`stringByEvaluatingJavaScriptFromString:`和`webView:...

    iOS中与JavaScript交互

    同时,UIWebView还提供了与JavaScript交互的能力,通过`WKWebView`的前身,我们可以实现原生代码与JavaScript代码的双向通信。 1. **JavaScript调用Objective-C**: 当我们需要从网页中的JavaScript代码调用iOS...

    webview与javascript交互,并解决编码问题

    在WebView与JavaScript交互时,中文字符可能会因为编码不一致导致乱码。这通常是因为网页编码(如UTF-8)与WebView或者JavaScript环境的默认编码不匹配。为了解决这个问题,我们需要确保以下几个关键点的编码设置是...

    note-on-iOS-work-with-[removed]iOS 和 JavaScript 交互几种方式的 demo:UIWebView,JavaScript,WKWebView

    总结一下,iOS与JavaScript交互的三种主要方式包括: 1. UIWebView:旧的解决方案,性能较低,但简单易用。 2. WKWebView:现代的选择,性能优越,安全性更高,支持更复杂的交互。 3. JavaScriptCore:提供底层...

    ios学习文件

    4. **UIWebView与JavaScript交互**:UIWebView可以在iOS应用中嵌入网页内容,并通过JavaScript实现与原生代码之间的交互。这对于构建混合应用或展示动态内容非常有用。 5. **SDWebImage图片缓存解决方案**:...

    UIwebview与js的详细使用

    本文档将详细介绍如何在iOS应用中使用UIWebView及其与JavaScript交互的方法。 #### 二、UIWebView的基础使用 ##### 2.1 在APP中嵌入网页 UIWebView最基础的功能是在iOS应用内嵌入网页。这通常通过`UIWebView`类的...

    IOS UIWebView Demo

    这个Demo可能包含了创建UIWebView对象、加载URL、处理用户交互以及与JavaScript交互等功能的实现。 【标签】:“IOS UIWebView Demo”标签明确了讨论的主题,即与iOS平台相关的UIWebView组件的使用示例。 【文件...

    ios-一个简单的ObjC与JavaScript交互封装.zip

    本项目“ios-一个简单的ObjC与JavaScript交互封装”提供了一个简洁易用的解决方案,名为XBWebBridge,由GitHub用户changjianfeishui创建。这个库的目标是简化 ObjC 和 JavaScript 之间的通信,使得开发者可以方便地...

Global site tag (gtag.js) - Google Analytics