我正在为应用商店创建iPhone / iPad应用。我想要做的是通过UIWebView使用HTML5 / Javascript创建它,以便我以后可以使用HTML5 / Javascript代码用于Web版本(这是一项要求)。我想有一个离线数据库(SQLite)基本上附带应用程序 - 这将是应用程序的内容,.sqlite文件将存在于我的XCode项目的/ Supporting Files /文件夹中。
我的问题是,如何从Javascript运行查询并从此数据库中获取数据?这可能吗?
答案 0 :(得分:1)
您必须构建自己的网桥或使用可用于iOS的许多基于HTML的应用框架之一(PhoneGap,Appcelerator等)。
如果您想要建立自己的桥梁,您应该查看UIWebView
的{{3}}以及UIWebView
的{{3}}的组合和UIWebViewDelegate
的{{3}}使用您在委托方法中检查的自定义协议(例如com.mycompany.myapp.1.0://
)。
修改强>
以下是一些示例代码:
你的HTML应该是这样的:
<a href="myapp://doQuery?arg1=a&arg2=b">Do Query</a>
或:
<a href="#" onclick:"javascript:doQuery();">Do Query</a>
<script>
function doQuery() {
window.location = "myapp://doQuery";
}
</script>
然后您的webview委托可以通过以下方式捕获点击:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)req (UIWebViewNavigationType)navType {
if ([[req URL] scheme] == @"myapp:") {
if ([[req URL] host] == @"doQuery") {
// Do the query here.
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"latestResult = %@; queryReturned(latestResult);", queryResultAsJSON]];
} else if ([[req URL] host] == @"doSomethingElse") {
// Do something else.
}
return NO;
}
return YES;
}