gpt4 book ai didi

objective-c - 为什么调用 window.open 时 createWebviewWithConfiguration 不会更改显示的 View ?

转载 作者:行者123 更新时间:2023-12-01 23:15:08 26 4
gpt4 key购买 nike

我对 WKWebView 很陌生,并且正在努力解决这个问题,当从 javascript 调用 windows.open 时,我当前的 View 不会改变,请参见下面...

function logo_click() {
window.open(some_valid_url);//url is valid www.google.com for example
}

自从我使用 Safari Tech Preview 踏入该功能以来,我非常确定该功能已被使用。当调用 logo_click 时,我什至在 xcode obj-c 中的 createWebviewWithConfiguration() 函数中得到断点,

-(WKWebView*)webView:(WKWebView )webView createWebViewWithConfiguration:(nonnull WKWebViewConfiguration )inConfig forNavigationAction:(nonnull WKNavigationAction )navigationAction windowFeatures:(nonnull WKWindowFeatures )windowFeatures
{
_webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:inConfig];

if (!navigationAction.targetFrame.isMainFrame) {
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[self.webView loadRequest:navigationAction.request];
//[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]]];
}

return _webView;
}

我什至尝试对 google.com 进行硬编码,看看它是否可以从那里导航,但我显示的 View 仍然是前一个 View 。我已经查看了

上的教程

iphonedevsdk.com/forum/iphone-sdk-development/122635-wkwebview-wont-open-external-links.html

但我的观点仍然没有改变。我可能会错过什么?

最佳答案

我使用以下代码解决了这个问题...

-(WKWebView*)webView:(WKWebView *)webView createWebViewWithConfiguration:(nonnull WKWebViewConfiguration *)inConfig forNavigationAction:(nonnull WKNavigationAction *)navigationAction windowFeatures:(nonnull WKWindowFeatures *)windowFeatures
{
[_webView removeFromSuperview];

_webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:inConfig];

if (!navigationAction.targetFrame.isMainFrame) {
//[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURLRequest* req = navigationAction.request;
[self.webView loadRequest:req];
}

_webView.navigationDelegate = self;
_webView.UIDelegate = self;

_webView.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
[self.view addSubview:_webView];

return _webView;
}

关于objective-c - 为什么调用 window.open 时 createWebviewWithConfiguration 不会更改显示的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39569179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com