如何更改(Safari)iPhone中的window.alert(“message”)弹出窗口中的标题(通常是域名)?
答案 0 :(得分:5)
您需要使用开源框架PhoneGap(http://www.phonegap.com/)。
然后,使用:
navigator.notification.alert("message", callback, "title", "button title");
通过Javascript。
编辑:这只适用于开发网络应用,而不适用于网站。无法更改提醒标题。
答案 1 :(得分:2)
您可以使用适用于桌面/浏览器测试环境和PhoneGap / Native环境的通用版本。这对我有用:
function showMessage(message, title, callback, buttonName){
title = title || "";
buttonName = buttonName || 'OK';
if(navigator.notification){
navigator.notification.alert(
message, // message
callback, // callback
title, // title
buttonName // buttonName
);
}else{
alert(message);
if(callback)
callback();
}
}
答案 2 :(得分:0)
对于想要在没有PhoneGap框架的情况下执行此操作的任何人,您可以将数据传递到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中匹配。