js调用Android、ios原生代码
2016-01-08 16:34
886 查看
ios部分
ios部分参考:传送门
js调用ios部分
调用必须在对应的.h或.m文件import
html部分、
Android部分
1、使用当前的activity/fragment实现OnJavascriptInterfaceListener(本文使用activity)
2、为webview添加一个JavascriptInterface
内部类JsOperation代码片段
“`
class JsOperation {
}
ios部分参考:传送门
js调用ios部分
调用必须在对应的.h或.m文件import
#import <JavaScriptCore/JavaScriptCore.h> //根据url加载网页 - (void)loadWebPageWithString:(NSString*)urlString { NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]; [self setUserAgent]; [_webView loadRequest:request]; JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; context[@"application"] = ^() {//该行中的application就是js的方法名 NSArray *args = [JSContext currentArguments];//这里的args类容是JSValue,不能直接使用 for (JSValue *jsVal in args) { NSLog(@"%@", jsVal); //遍历打印所有value,可以通过[jsVal tostring]的方法转成NSstring类型 } //这里可以根据个人需求执行逻辑 }
html部分、
<html> <head> </head> <body> <button id="hallo" onclick="iosbuttonClick()"> test-ios</button> <button id="hallo" onclick="androidbuttonClick()"> test-Android</button> <script> function iosbuttonClick() { application("parameter1", "parameter2"); //这里的参数个数无限制,可以空参数,application需要对应oc代码 } function androidbuttonClick(){ client.call("parameter1", "parameter2");//这里的参数个数无限制,可以空参数,client需要跟Android代码对应,call是Android代码的共有方法的方法名字。 } </script> </body> </html>
Android部分
1、使用当前的activity/fragment实现OnJavascriptInterfaceListener(本文使用activity)
2、为webview添加一个JavascriptInterface
webview.addJavascriptInterface(new JsOperation(this), "client");//client需要跟js对应
内部类JsOperation代码片段
“`
class JsOperation {
Activity mActivity; public JsOperation(Activity activity) { mActivity = activity; } @JavascriptInterface//别把这个注解漏掉 public void call(String s1,String s2){//方法名字需要跟js对应 //这里执行程序的业务逻辑处理 }
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件