我想在UIWebView上显示SQLite
数据库内容。为此,我有一个本地HTML文件。在html文件中调用JavaScript函数的Body load。在Java Script内部如何调用Objective-c方法。如何从Objective c获取数据到Java Srcipt。
<html>
<head>
<!-- a script inline -->
<script language="JavaScript" TYPE="text/javascript">
<!--
function myJsFunc()
{
//here i want to call objective-c methods.
}
// -->
</script>
</head>
<Body Bgcolor=#800000 onload="myJsFunc(); return true;">
</Body>
</html>
Objective-C代码 ......
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *path;
NSBundle *thisBundle = [NSBundle mainBundle];
path = [thisBundle pathForResource:@"Demo" ofType:@"html"];
// make a file: URL out of the path
NSURL *instructionsURL = [NSURL fileURLWithPath:path];
[myWebView loadRequest:[NSURLRequest requestWithURL:instructionsURL]];
[self.view addSubView:myWebView];
}
-(NSArray*)FetchingDataFromDataBase{
// Code for retriving data from SQlite data Base, and return NSArray;
return myArray;
}
在功能myJSFunc
()内,如何调用-(NSArray*)FetchingDataFromDataBase.
答案 0 :(得分:1)
graver发表的博客文章解释了如何做到这一点。
- (BOOL)webView:(UIWebView *)webView2
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
如果您的类中有上述方法,则在加载新页面之前将调用此方法。仅当此方法返回YES时,才会处理新的加载请求。我们使用该机制与Objective-C函数进行通信。