Для тех, кто хочет сделать это без PhoneGap Framework, вы можете передать данные в iOS, а затем показать предупреждение.
В вашем делегате веб-просмотра:
- (BOOL) webView:(UIWebView*)webView
shouldStartLoadWithRequest:(NSURLRequest*)request
navigationType:(UIWebViewNavigationType)type {
NSURL* url = [request URL];
NSString* scheme;
NSString* host;
NSString* path;
BOOL isRealUrl = YES;
switch (type) {
case UIWebViewNavigationTypeLinkClicked:
// Open link in Safari
[[UIApplication sharedApplication] openURL:url];
return NO;
break;
case UIWebViewNavigationTypeFormSubmitted:
case UIWebViewNavigationTypeOther:
scheme = [url scheme];
host = [url host];
path = [url path];
if ([scheme isEqualToString:@"alert"]) {
[[[UIAlertView alloc] initWithTitle:host
message:[path substringFromIndex:1]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] show];
isRealUrl = NO;
} else {
// Go to another page in your app.
isRealUrl = YES;
}
break;
default:
break;
}
return isRealUrl;
}
В вашем JavaScript:
function myAlert(message, title) {
if (/iphone|ipod|ipad/.test(navigator.userAgent) &&
!/safari/i.test(navigator.userAgent)) {
document.location.href = 'alert://' + encodeURIComponent(title) + '/' +
encodeURIComponent(message);
} else {
alert(message);
}
}
Затем вызовите функцию оповещения myAlert('Testing', 'One, Two, Three');
Обратите внимание, что схема alert
должна совпадать в функции делегата и javascript href.