Вам придется построить свой собственный мост или использовать одну из множества основанных на HTML каркасов приложений, доступных для iOS ( PhoneGap , Appcelerator и т. Д.).
Если вы хотите пойти по пути строительства собственного моста, вам следует проверить UIWebView
s -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>
Тогда ваш делегат веб-просмотраможет захватить клик там:
- (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;
}