как правильно реализовать didFinishNavigation - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь реализовать фрагмент кода на didFinishNavigation, который вызывает функцию js в веб-просмотре. Но, похоже, я не реализовал это должным образом.

#import "DummyWebView.h"
#import "DummyOptions.h"
#import <WebKit/WebKit.h>


@implementation DummyWebView


- (void)viewDidLoad {
    [super viewDidLoad];
    CGRect screen = [[UIScreen mainScreen] bounds];
    WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(screen), CGRectGetHeight(screen))];
    NSString *urlString = @"https://5e9dad3079f67.htmlsave.net";
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
    [self.view addSubview:webView];
}

-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    NSString *json = [NSString stringWithFormat:@"%s %s %s %s %s %s", "{", "\"status\" :",  "\"", "bassey", "\"","}"];

NSString *function = [NSString stringWithFormat:@"%s %@ %s", "test('", json, "')"];

[webView evaluateJavaScript:function completionHandler:^(NSString *result, NSError *error)
{
    NSLog(@"Error %@",error);
    NSLog(@"Result %@",result);
}];
}

- (void)viewDidAppear:(BOOL)animated{
    NSLog(@"viewDidAppear loaded successfully");
}

@end

Пожалуйста, что я делаю не так?

1 Ответ

1 голос
/ 08 мая 2020

У меня это работает только сейчас. Немного травмирован возвращением к Objective- C!

В вашем заголовочном файле:

#import <UIKit/UIKit.h>
#import <WebKit/WebKit.h>

@interface ViewController : UIViewController <WKNavigationDelegate>


@end

Вам нужно импортировать WebKit сюда и получить ViewController в соответствии с WKNavigationDelegate.

И в файле метода:

WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(screen), CGRectGetHeight(screen))];
webView.navigationDelegate = self;

Теперь, когда установлен делегат, он вызовет функцию:

enter image description here

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