现在用h5开发的APP越来越多,这样就存在一个交互问题,这里说两个简单的交互:1.如何向后台传值 2.如何获取后台传过来的值
1.如何简单的向后台传值:首先导入JavaScriptCore.framework这个库,然后在你想要实现传值的类里面遵循
#import <JavaScriptCore/JavaScriptCore.h>
后面直接上代码,一般下面的这段代码
-(void)webViewDidFinishLoad:(UIWebView *)webView{
}这个代理方法里面,当然其他位置也是可以的,看需求
JSContext *context = [_WebViewvalueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
context[@"iOSWXPay2"] = ^() {
NSDictionary *dic =@{@"city":city,@"district":party,@"latitude":[NSStringstringWithFormat:@"%f",jindu],@"longitude":[NSStringstringWithFormat:@"%f",weidu]
};
NSString *str1 = [selfdictionaryToJson:dic];
return str1;
2.如何获取后台传过来的值。
方法类似。都是
context[@"iOSapliyPay"] = ^()
NSArray *args = [JSContextcurrentArguments];
int i=0;
for (JSValue *jsValin args) {
if (i==0) {
referralUserId= (NSString*)jsVal;
}
if (i==1) {
userId= (NSString*)jsVal;
}
if (i==2) {
paytape= (NSString*)jsVal;
}
if (i==3) {
money= (NSString*)jsVal;
}
i++;
}
这里可以写获取后台传过来的值之后执行的方法。
};
NSArray *args = [JSContext currentArguments];这个可以用数组接收后台传过来的值。无论后台传过来的值的类型。
就是这么简单。