如何在 IOS 自定义键盘应用程序扩展的 InputView 中嵌入 WebView

How to embed WebView inside InputView For IOS custom keyboard app extension

我尝试创建一个嵌入了 webview 的故事板 然后在 ViewController 控制器 class 中,在 viewDidLoad 方法中 :

[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]]];

日志:


CustomKeyboard[1865:37706] [常见] BKSAccelerometer 无法为设备方向创建通知令牌

CustomKeyboard[1865:37779] [默认] 错误注册字符串通知端口:(1000000)

CustomKeyboard[1865:37706] [] __nwlog_err_simulate_crash_libsystem libsystem 模拟崩溃失败 "libsystem_network.dylib: networkd_settings_setup_notify_watch :: notify_register_dispatch(com.apple.system.networkd.settings) [status 1000000] failed"

CustomKeyboard[1865:37706] [] networkd_settings_setup_notify_watch notify_register_dispatch(com.apple.system.networkd.settings) [状态 1000000] 失败,转储回溯:
[arm64] libnetcore-856.1.8
0 libsystem_network.dylib 0x0000000188db5534 __nw_create_backtrace_string + 116
1 libsystem_network.dylib 0x0000000188dd17e4 + 332
2 libsystem_network.dylib 0x0000000188dd15b0 + 68
3 libsystem_network.dylib 0x0000000188da91a8 nwlog_is_debug_logging_enabled + 32
4 libsystem_network.dylib 0x0000000188dc8fac + 256
5 libsystem_network.dylib 0x0000000188dc917c + 24
6 libdispatch.dylib 0x0000000188c051c0 + 16
7 libdispatch.dylib 0x0000000188c12860 + 84
8 libsystem_network.dylib 0x0000000188dc7088 + 160
9 libsystem_network.dylib 0x0000000188dc6b1c + 136
10 个图书馆

CustomKeyboard[1865:37706] [] __nwlog_err_simulate_crash_libsystem libsystem 模拟崩溃失败 "libsystem_network.dylib: networkd_settings_init :: notify_register_check(nw_notification_name_settings) status 1000000 token -1 failed"

CustomKeyboard[1865:37706] [] networkd_settings_init notify_register_check(nw_notification_name_settings) status 1000000 token -1 failed, dumping backtrace:
[arm64] libnetcore-856.1.8
0 libsystem_network.dylib 0x0000000188db5534 __nw_create_backtrace_string + 116
1 libsystem_network.dylib 0x0000000188dd1620 + 180
2 libsystem_network.dylib 0x0000000188da91a8 nwlog_is_debug_logging_enabled + 32
3 libsystem_network.dylib 0x0000000188dc8fac + 256
4 libsystem_network.dylib 0x0000000188dc917c + 24
5 libdispatch.dylib 0x0000000188c051c0 + 16
6 libdispatch.dylib 0x0000000188c12860 + 84
7 libsystem_network.dylib 0x0000000188dc7088 + 160
8 libsystem_network.dylib 0x0000000188dc6b1c + 136
9 libsystem_network.dylib 0x0000000188dc68c4 nw_path_create_evaluator_for_endpoint + 972


CustomKeyboard[1865:37912] dnssd_clientstub ConnectToServer: connect()-> 尝试次数:1

CustomKeyboard[1865:37912] dnssd_clientstub ConnectToServer: connect()-> 尝试次数:2

CustomKeyboard[1865:37912] dnssd_clientstub ConnectToServer: connect()-> 尝试次数:3

CustomKeyboard[1865:37912] dnssd_clientstub ConnectToServer: connect() 失败路径:/var/run/mDNSResponder Socket:5 Err:-1 Errno:1 不允许操作

CustomKeyboard[1865:37912][]nw_resolver_create_dns_service_on_queueDNSServiceCreateConnection 失败:ServiceNotRunning(-65563)

CustomKeyboard[1865:37945] [] __nw_connection_get_connected_socket_block_invoke 2 连接没有连接的处理程序

CustomKeyboard[1865:37929] PAC 流失败

CustomKeyboard[1865:37929][]nw_proxy_resolver_create_parsed_array PAC 评估错误:kCFErrorDomainCFNetwork:-72000

CustomKeyboard[1865:37929] dnssd_clientstub ConnectToServer: connect()-> 尝试次数:1

CustomKeyboard[1865:37929] dnssd_clientstub ConnectToServer: connect()-> 尝试次数:2

CustomKeyboard[1865:37929] dnssd_clientstub ConnectToServer: connect()-> 尝试次数:3

CustomKeyboard[1865:37929] dnssd_clientstub ConnectToServer: connect() 失败路径:/var/run/mDNSResponder Socket:5 Err:-1 Errno:1 不允许操作

CustomKeyboard[1865:37929][]nw_resolver_create_dns_service_on_queueDNSServiceCreateConnection 失败:ServiceNotRunning(-65563)

将代码放在 viewDidAppear 方法 而不是 viewDidLoad 方法

- (void)viewDidAppear:(BOOL)animated {

    CGRect screenRect = [[UIScreen mainScreen] bounds];
    CGFloat screenWidth = screenRect.size.width;
    //CGFloat screenHeight = screenRect.size.height;

    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 800)];
    NSString *urlString = @"http://mum00blf.in.oracle.com:7777/index/public/login.html";
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    [webView loadRequest:urlRequest];


    /*dispatch_async(dispatch_get_main_queue(), ^(void){
            [self.view addSubview:webView];
    });*/

    [self.view addSubview:webView];

}