всплывающее предупреждение в сафари (iPhone) - PullRequest
4 голосов
/ 02 ноября 2010

Как я могу изменить заголовок (обычно домен), который появляется во всплывающем окне window.alert ("message") на iPhone (Safari) ??

Ответы [ 3 ]

5 голосов
/ 02 ноября 2010

Вам нужно будет использовать фреймворк с открытым исходным кодом PhoneGap (http://www.phonegap.com/).

Затем используйте:

navigator.notification.alert("message", callback, "title", "button title");

через Javascript.

Редактировать: Это будеттолько для разработки веб-приложения, а не для веб-сайта. Изменение заголовка предупреждения невозможно.

2 голосов
/ 25 мая 2012

Вы можете использовать универсальную версию, которая подходит как для среды тестирования настольных компьютеров / браузеров, так и для среды 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();
    }

}
0 голосов
/ 05 ноября 2014

Для тех, кто хочет сделать это без 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...