提问人:Piyush Khanna 提问时间:8/22/2022 最后编辑:Piyush Khanna 更新时间:8/25/2022 访问量:265
如何获取在新选项卡中打开的当前wkwebview的URL?
How to get the URL of current wkwebview that was opened in a new tab?
问:
我有一个 WkWebview,它在新选项卡中打开一个子 WkWebview。我正在尝试在导航栏顶部向用户显示当前 Web 视图的 URL。我能够使用父 webview 的 webView.URL 属性来实现此目的,但同一属性在用于子 webview 时返回一个空白字符串。我还尝试使用 navigationAction.request.URL 作为子 webview 的替代方法,但这也返回一个空字符串。子 webview 完美打开,除了 URL 之外,我没有看到任何其他问题。如何获取子 Web 视图的当前 URL?
用于创建在新选项卡中打开的子 Web 视图的代码:
- (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures {
self.popupWebView = [[WKWebView alloc] initWithFrame:self.webView.frame configuration:configuration];
self.popupWebView.UIDelegate = self;
self.popupWebView.navigationDelegate = self;
[self.webView addSubview:self.popupWebView];
NSLog( @"Pop up webview navigationAction URL: '%@'", navigationAction.request.URL.absoluteString );
self.controller.navigationItem.title = navigationAction.request.URL.absoluteString;
return self.popupWebView;
}
编辑:在上面的代码中添加“self”所指的接口:
NS_ASSUME_NONNULL_BEGIN
@interface WkWebViewModule : NSObject <RCTBridgeModule, WKUIDelegate, WKNavigationDelegate>
@property (nonatomic) UIViewController *controller;
@property (nonatomic) UINavigationController *navigationController;
@property (nonatomic) WKWebView *webView;
@property (nonatomic) UINavigationItem *navItem;
@property (nonatomic) UINavigationBar *navbar;
@property (nonatomic) WKWebView *popupWebView;
@property (nonatomic) WKPreferences *wkPreferences;
@end
NS_ASSUME_NONNULL_END
答:
1赞
ferdil
8/25/2022
#1
不是 100% 确定,但您可能需要在使用委托 self.popupWebView.UIDelegate 加载页面后获取 URL,因为在您尝试获取 URL 时,WkWebView 已创建,但没有内容?
评论
0赞
Piyush Khanna
9/3/2022
谢谢@ferdil,事实确实如此。我在webview didFinishNavigation函数中添加了以下行,现在工作正常。- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation { self.controller.navigationItem.title = webView.URL.absoluteString; }
评论