Ios 背景中的WKWebView,几个奇怪的断言

Ios 背景中的WKWebView,几个奇怪的断言,ios,objective-c,Ios,Objective C,我想在iOS中找到当前浏览器的userAgent 因此,在由Xcode创建的默认项目中,我添加了: #import "ViewController.h" #import <WebKit/WKWebView.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do an

我想在iOS中找到当前浏览器的userAgent

因此,在由Xcode创建的默认项目中,我添加了:

#import "ViewController.h"
#import <WebKit/WKWebView.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    dispatch_async(dispatch_get_main_queue(), ^{
        WKWebView *obj = [[WKWebView alloc] initWithFrame:CGRectZero];
        [obj evaluateJavaScript: @"navigator.userAgent" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
            NSLog(@"evaluateJavaScript = %@ : %@", result, error);
            NSLog(@"To make sure that webview alive: %@", obj);
        }];
    });
}


@end
#导入“ViewController.h”
#进口
@界面视图控制器()
@结束
@实现视图控制器
-(无效)viewDidLoad{
[超级视图下载];
//加载视图后执行任何其他设置。
dispatch\u async(dispatch\u get\u main\u queue()^{
WKWebView*obj=[[WKWebView alloc]initWithFrame:CGRectZero];
[obj evaluateJavaScript:@“navigator.userAgent”completionHandler:^(id_可为空的结果,N错误*_可为空的错误){
NSLog(@“evaluateJavaScript=%@:%@),结果,错误);
NSLog(@“确保webview处于活动状态:%@”,obj);
}];
});
}
@结束
它打印出我所期望的:

evaluateJavaScript=Mozilla/5.0(iPad;CPU OS 14_0,如Mac OS X)AppleWebKit/605.1.15(KHTML,如Gecko)Mobile/15E148:(空)

但在那之后它会打印:

test4[1930:101220]用法:

test4[1930:101220][assertion]获取断言时出错:

test4[1930:101220][ProcessSuspension]0x102dfed00-ProcessAssertion: 无法获取RBS后台断言的WebProcess后台 带有PID 1933的进程的断言,错误:错误 Domain=RBSAssertionErrorDomain Code=3“目标未运行或 缺少所需的目标权限“ UserInfo={RBSAssertionAttribute=,NSLocalizedFailureReason=未指定目标 缺少正在运行的或必需的目标权限}

这看起来不太好。我的代码有问题吗,
是否可以避免这些断言并仍然获取userAgent字符串?

创建一个空的
UIView
并将
WKWebView
添加为子视图。

只需读取错误消息“目标未运行或缺少所需的目标权限”这也是正确的失败,因为您可以将不同的userAgent字符串应用到您自己刚刚执行的实现中。您在视图加载完成之前断言javascript。@OlSen您是如何通过查看
“目标未运行或缺少必需的目标权限”
得出所有结论的?对我来说这一点都不清楚。嗯,你到底是如何解决这个问题的?我有一个类似的问题:你一直在到处张贴这个答案,我试过了,但它没有改变任何事情。你能证明它解决了类似的问题吗?