您將不得不建立自己的橋樑或使用適用於iOS的許多基於HTML的應用程序框架之一(PhoneGap,Appcelerator等)。
如果你想下去構建自己橋的路徑,你應該檢查出UIWebView
的-stringByEvaluatingJavaScriptFromString:
和UIWebView
的組合的-loadRequest
和UIWebViewDelegate
的webView:shouldStartLoadWithRequest:navigationType:
使用自定義的協議(例如,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;
}
這有助於 - 雖然我不確定這意味着什麼建立我自己的橋樑 - 我不介意這樣做,如果我能從中獲得一定程度的定製。你有鏈接的教程或任何更好地解釋這個?另外,你是否確實知道我可以運行一個查詢並將這些數據作爲JavaScript調用的JavaScript層? –
非常感謝,這更清晰。 –