定义js方法
function callOC(func,param){ var iframe = document.createElement("iframe"); var url= "myapp:" + "&func=" + func; for(var i in param) { url = url + "&" + i + "=" + param[i]; } iframe.src = url; iframe.style.display = 'none'; document.body.appendChild(iframe); iframe.parentNode.removeChild(iframe); iframe = null; }
调用js方法
<a onclick="callOC('prodId',{'prodId':${pro.prodId}})" ><img class="scrollLoading" src='<ls:photo item="${pro.img}" />'></a>
OC接收参数
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *requestString = [[[request URL] absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]; if ([requestString hasPrefix:@"myapp:"]) { NSLog(@"requestString:%@",requestString); //如果是自己定义的协议, 再截取协议中的方法和参数, 判断无误后在这里手动调用oc方法 NSMutableDictionary *param = [self queryStringToDictionary:requestString]; NSLog(@"get param:%@",[param description]); NSString *func = [param objectForKey:@"func"]; if([func isEqualToString:@"callFunc"]) { [self testFunc:[param objectForKey:@"first"] withParam2:[param objectForKey:@"second"] andParam3:[param objectForKey:@"third"] ]; } /* * 方法的返回值是BOOL值。 * 返回YES:表示让浏览器执行默认操作,比如某个a链接跳转 * 返回NO:表示不执行浏览器的默认操作,这里因为通过url协议来判断js执行native的操作,肯定不是浏览器默认操作,故返回NO * */ return NO; } return YES; }
- (NSMutableDictionary*)queryStringToDictionary:(NSString*)string { NSMutableArray *elements = (NSMutableArray*)[string componentsSeparatedByString:@"&"]; NSMutableDictionary *retval = [NSMutableDictionary dictionaryWithCapacity:[elements count]]; for(NSString *e in elements) { NSArray *pair = [e componentsSeparatedByString:@"="]; [retval setObject:[pair objectAtIndex:1]?:@"" forKey:[pair objectAtIndex:0]?@:"nokey"]; } return retval; }
具体引自 http://www.skyfox.org/javascript-ios-navive-message.html
请尊重知识,请尊重原创 更多资料参考请见 http://www.cezuwang.com/listFilm?page=1&areaId=906&filmTypeId=1
相关推荐
JavaScript(简称JS)和iOS之间的交互是移动应用开发中的一个重要环节,特别是在混合应用开发中,如React Native或Cordova项目。这种交互使得开发者可以利用Web技术(如HTML、CSS和JavaScript)来创建具有原生iOS...
标题"ios-传值.zip"暗示了这个压缩包可能包含一系列关于在iOS应用中传递数据的示例或教程。描述中的"各种代理,block传值"指出主要关注的是两种常见的数据传递机制:代理模式(Delegate)和Block(闭包)。下面我们...
我们需要在Swift中定义一个WKScriptMessageHandler,然后在JavaScript中通过postMessage方法发送消息给Swift。流程如下: 1. 定义Swift处理函数:创建一个遵循WKScriptMessageHandler协议的类,实现...
本文将深入讲解如何在iOS应用中使用`WKWebView`与JavaScript进行交互。 首先,为了使用`WKWebView`,需要导入WebKit框架: ```swift #import ``` 然后,初始化`WKWebView`并设置代理。代理的实现至关重要,因为...
-- 使用Delegate在两个ViewController间传值 -- 内存泄露Demo leaky app -- iOS上拉加载更多的实现 -- iOS视频通话/直播demo -- 数据库操作(使用FMDB) -- iOS图文混排(模仿新浪微博) -- IOS高仿微信聊天对话界面 -...
而在iOS开发中,可以利用Delegation、Notification或Block等方式。 3. **使用场景**: - 用户在窗口A中输入数据后,可能需要在窗口B中显示或进一步处理这些数据,如登录窗口和主窗口之间的用户信息传递。 - 应用...
1. **传值方法**:在iOS应用中,数据的传递是程序交互的基础。这可能包括通过属性赋值、代理协议、KVO(Key-Value Observing)、通知中心、Block或NSUserDefault等方式。理解这些机制有助于实现视图间的有效通信。 ...
在iOS开发中,JSON(JavaScript Object Notation)是一种常见的数据交换格式,被广泛用于服务器与客户端之间传递数据。本教程将聚焦于如何解析JSON文件并在iOS应用中进行数据传递,特别是针对列表展示。 首先,我们...
**JS安全交互**:在传统的Android与JavaScript交互中,可能使用WebView直接执行JavaScript代码,这种方法容易暴露API,可能导致恶意脚本注入。SchemeJsBridge通过在Android端设置安全的拦截器,对来自JavaScript的...
在移动应用开发中,uni-app是一个跨端框架,它允许开发者编写一次代码,就能在iOS、Android、H5等多个平台上运行。而Webview是uni-app中用于嵌入HTML5页面的组件,它使得原生应用能够加载和展示网页内容。在uni-app...
本程序使用VS2019进行制作,利用ASP.NET+H5+Zxing+js+sweetalert2 实现手机端和PC端调用摄像头进行二维码扫一扫,实现前端采集数据,后端进行分析并向前端传值,pc端可运行,手机端鸿蒙系统,安卓,IOS4.X以上均可...
一个Cordova插件通常包含两部分:JavaScript接口和原生平台代码(如Android或iOS)。JavaScript部分是与Web应用交互的接口,而原生代码则负责与设备硬件或系统服务进行通信。在创建自定义插件时,我们需要在`plugin....
- JavaScript 库:使用 D3.js、Chart.js、Google Charts 或者 ECharts 等JavaScript库,可以方便地在网页上创建交互式饼图。这些库提供了丰富的API和自定义选项,可以调整颜色、字体、动画效果等。 - Python 数据...
在`goSao`方法中,首先检查当前设备是iOS还是Android,然后根据设备类型获取URL。之后,向后端发送请求以获取签名数据(包括appId、timestamp、nonceStr和signature)。 ```javascript import wx from 'weixin-js-...
3. 传值:在iOS中,可以通过`prepare(for:sender:)`方法传递数据给目标视图控制器。在触发segue之前,系统会先调用这个方法,可以在其中设置`destination`的属性。 三、Android中的程序间跳转 1. Intent:在...
"代理传值"指的是使用JavaScript的Proxy对象来拦截并控制对象的访问。在这个场景下,可能创建一个Proxy对象来包装城市选择器,当用户选择城市时,通过Proxy捕获这个动作并转发给其他部分的代码,比如将选择结果发送...
vue使用微信扫一扫 第一步: 安装weixin-js-sdk 和 jquery 包 npm install weixin-js-sdk jquery 第二部: 配置wx.config (配置都是后端返回... //(兼容安卓和ios) let url = 传值; let ua = navigator.userAgent.t