iOS与js交互的2种方法
来源:互联网 发布:卫宁软件股票代码 编辑:程序博客网 时间:2024/06/11 09:41
- (void)viewDidLoad { [superviewDidLoad]; UIWebView *webView = [[UIWebViewalloc] initWithFrame:self.view.bounds]; NSString *filePath = [[NSBundlemainBundle] pathForResource:@"jsOC1"ofType:@"html"]; [webView loadRequest:[NSURLRequestrequestWithURL:[NSURLfileURLWithPath:filePath]]]; webView.delegate =self; [self.viewaddSubview:webView];}//1、获取当前页面的url,。- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *currentURL = [webViewstringByEvaluatingJavaScriptFromString:@"document.location.href"]; NSString *title = [webViewstringByEvaluatingJavaScriptFromString:@"document.title"]; JSContext *jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; JSValue *jsValue = [jsContextevaluateScript:@"showAppAlertMsg"]; [jsValue callWithArguments:@[@"这是app本地交互文案"]]; NSLog(@"currentURL ===%@\ntitle ===%@\njsValue ===%@",currentURL,title,jsValue); //定义好JS要调用的方法, share就是调用的share方法名 jsContext[@"secondClick"] = ^() { NSLog(@"+++++++Begin Log+++++++"); NSArray *args = [JSContextcurrentArguments]; dispatch_async(dispatch_get_main_queue(), ^{ UIAlertView *alertView = [[UIAlertViewalloc] initWithTitle:@"方式二"message:@"这是OC原生的弹出窗"delegate:selfcancelButtonTitle:@"收到"otherButtonTitles:nil]; [alertView show]; }); for (JSValue *jsValin args) { NSLog(@"%@", jsVal.toString); } NSLog(@"-------End Log-------"); };}- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ NSURL * url = [requestURL]; NSLog(@"urlScheme:%@",[urlscheme]); if ([[urlscheme] isEqualToString:@"firstclick"]) { NSArray *params =[url.querycomponentsSeparatedByString:@"&"]; NSMutableDictionary *tempDic = [NSMutableDictionarydictionary]; for (NSString *paramStrin params) { NSArray *dicArray = [paramStrcomponentsSeparatedByString:@"="]; if (dicArray.count >1) { NSString *decodeValue = [dicArray[1]stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; [tempDic setObject:decodeValueforKey:dicArray[0]]; } } UIAlertView *alertView = [[UIAlertViewalloc] initWithTitle:@"方式一"message:@"这是OC原生的弹出窗"delegate:selfcancelButtonTitle:@"收到"otherButtonTitles:nil]; [alertView show]; NSLog(@"tempDic:%@",tempDic); returnNO; } returnYES;}
0 0
- iOS与js交互的2种方法
- iOS 几种webView与JS交互的方法
- iOS与JS的交互
- iOS JS交互--UIWebView与JS的交互
- iOS: JS和Native交互的两种方法
- ios 与js 交互
- iOS 与 JS 交互
- iOS 与 js 交互
- ios与js 交互
- iOS与JS交互
- iOS 与 JS 交互
- JS 与 iOS 交互
- IOS 与 JS 交互
- ios与js交互
- iOS与JS交互
- iOS与JS交互
- iOS与JS交互
- iOS与js交互
- 既使用maven又使用本地Jar包
- 蜜罐网络攻击分析实验(网安实验7)
- L2-007. 家庭房产
- QQ的常用快捷键大全
- Android 自动点击
- iOS与js交互的2种方法
- 百度前端学院任务练习—二
- 28.使用Scala实现自定义Accumulator
- 【Inno Setup】安装前关闭旧版本软件
- 如何正确的保养和使用笔记本电脑电池
- git 转换符设置
- 大规模网站sesson会话保持思路及实践配置
- Windows下安装tensorflow(tf原生态支持)
- RobotFramework环境配置十一:网页弹窗问题