iOS UIWebView Javascript – 插入数据 – 接收callback?
我有一个网页。 我有一个JavaScript文件,做了很多东西。 在应用程序中我有一个NSString与一些关键的数据,需要在JavaScript文件中处理。 如何让我的string值到我的HTML的某个地方,所以我的JavaScript可以读取它?
此外,执行操作时(如按下button),JavaScript会产生一定的数据,我如何从webview / JavaScript检索数据,以便它可以存储在应用程序?
你可以调用一个JavaScript方法,并通过使用这个值传递
NSString *selectedValue = [webViewInstance stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"getAndReturnRadioValue(%d)", questionCounterIntValue]];
但要从JavaScript触发,你需要使用一个解决方法,
实现以下webViewDelegate方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ NSLog(@"passed data from web view : %@",[[request URL] query]); if([[[request URL] query] isEqualToString:@"clickedOnLineNo"]) { //Do your action here } }
你必须从你的javascript方法导航到一个假的URL,
window.location = "someLink://yourApp/form_Submitted:param1:param2:param3";
点击一个button或您需要的操作。
你可以看看我的这个问题的答案在UIWebView中提交一个表单
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
听起来就像你需要的方法。 例如,如果需要与JavaScript进行交互的input和输出可以使用单一方法完成,则可以将值传递给JavaScript,并使用如下代码获得结果:
NSString* jsCode = [NSString stringWithFormat:@"doSomething('%@')", dataToPass]; NSString* resultFromJavaScript = [webView stringByEvaluatingJavaScriptFromString:jsCode];
嗨,我们可以从目标C的数据发送到JavaScript,并可以轻松地从JavaScriptcallback
objectve c – > javaScript
在对象c类
NSData *locationCountData = [NSJSONSerialization dataWithJSONObject:locationCount options:NSJSONWritingPrettyPrinted error:nil]; NSString *locationCountString = [[NSString alloc] initWithData:locationCountData encoding:NSUTF8StringEncoding]; NSData *locationCountData = [NSJSONSerialization dataWithJSONObject:locationCount options:NSJSONWritingPrettyPrinted error:nil]; NSString *locationCountString = [[NSString alloc] initWithData:locationCountData encoding:NSUTF8StringEncoding]; NSString *str = [NSString stringWithFormat:@"testFunction(%@,%@)",locationCountString, locationsListString]; [self.myWebView stringByEvaluatingJavaScriptFromString: str];
在JavaScript文件中
<script type="text/javascript"> function testFunction(locationCount,locationList) { alert(locationCount + locationList); } </Script>
- 撤消核心数据pipe理对象
- 一种唯一标识BTLE设备的方法
- 如何将UISearchController的searchBar设置为不是tableHeaderView或navigationItem.titleview的视图?
- Facebook iOs sdk iphone:从多个视图控制器调用
- NSSortDescriptor – 基于另一个数组sorting描述符
- 如何将其configuration为在UITableView中呈现,或者应该在多个UITableView中完成
- 在多任务栏中closuresPhoneGap应用程序时,iOS 5.1是否清除localStorage?
- NSTimer vs CACurrentMediaTime()
- 在sqlite中更改date格式