Без какой-либо внешней структуры мы можем сделать это. Чтобы достичь этого, как телефон, мы должны использовать webView. Например, если вам нужно вызвать целевую функцию c при нажатии кнопки в веб-просмотре. Когда щелчок по вашей кнопке на html-странице вызывает javascript, просто добавьте iFrame, который будет содержать имя функциицелевая функция C.
например:
var iframe = document.createElement("IFRAME");
iframe.setAttribute("src", "js-frame:" + functionName + ":" + callbackId);
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null
;
Этот iFrame может быть принят в вашем webView Делегат, реализованный в вашем ParentView в webView, вроде-
- (BOOL)webView:(UIWebView *)webView2
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
NSString *requestString = [[request URL] absoluteString];
if ([requestString hasPrefix:@"js-frame:"]) {
NSArray *components = [requestString componentsSeparatedByString:@":"];
NSString *function = (NSString*)[components objectAtIndex:1];
int callbackId = [((NSString*)[components objectAtIndex:2]) intValue];
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
;
[self handleCall:function callbackId:callbackId];
return NO;
}
return YES;
}
handleCall должен будет обработать вызов вашего намеченного метода с именем "function"