【问题标题】:iPad Pro "HTTP_USER_AGENT" of iOS UIWebViewiOS UIWebView的iPad Pro“HTTP_USER_AGENT”
【发布时间】:2023-04-11 05:32:02
【问题描述】:

我在新的 iPad Pro 上测试了我现有的 iOS 应用。我发现 UIWebview 的 HTTP_USER_AGENT 文本是...

Mozilla/5.0 (iPhone; CPU iPhone OS9_1 like Mac OS X) AppleWebKit/601.1.46(KHTML, like Gecko)Mobile/13B143 

因此,Web 端程序的反应就好像这个设备是 iPhone。如何在我的服务器端程序中区分 iPad Pro 和 iPhone?

【问题讨论】:

  • 你是如何获得用户代理字符串的?
  • 我发现另一个应用程序的 webview 发送 http_user_agent 作为“iPad”。所以,这个问题是应用程序方面的。我将检查这两个应用程序代码之间的差异。
  • to l'L'I in my php code... echo $_SERVER['HTTP_USER_AGENT'];

标签: ios ipad


【解决方案1】:

通过添加Launch Screen.stoyboard,这个问题就解决了。

【讨论】:

  • 感谢您的提问/回答 - 我们的 iOS 应用也遇到了同样的问题。
  • @Keisuke Uemura 是否可以在不使用的情况下添加启动屏幕?
【解决方案2】:

我遇到了同样的问题,并使用WKWebView 而不是UIWebView 解决了它。这种用于显示 Web 内容的新实现是 Apple 推荐的实现,因为 UIWebView 似乎将被弃用。

关于这个新对象的一点是,评估 JavaScript 的方法是异步的。因此,如果您想使用同步方法来获取 userAgent,您应该按照here 的说明创建自己的 WKWebView 类别。

代码应该是这样的

@interface WKWebView(SynchronousEvaluateJavaScript)
- (NSString *)stringByEvaluatingJavaScript:(NSString *)script;
@end

@implementation WKWebView(SynchronousEvaluateJavaScript)

- (NSString *)stringByEvaluatingJavaScript:(NSString *)script
{
    __block NSString *resultString = nil;

    [self evaluateJavaScript:script completionHandler:^(id result, NSError *error) {
        if (error == nil) {
            if (result != nil) {
                resultString = [NSString stringWithFormat:@"%@", result];
            }
        } else {
            NSLog(@"evaluateJavaScript error : %@", error.localizedDescription);
        }
    }];

    while (resultString == nil)
    {
        [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
    }

    return resultString;
}

@end

而且调用和之前完全一样:

WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero];
defaultUserAgent = [webView stringByEvaluatingJavaScript:@"navigator.userAgent"];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    相关资源
    最近更新 更多