WKWebViewでページを読み込み、その中のリンクを無効にしたいとします。ほとんどのリンクは相対的なものです。WKWebViewのリンクを無効にしますか?
webView:decidePolicyForNavigationAction:decisionHandler:
と試みたが、それを呼び出して、私はnavigationAction.request.URL
を使用した場合の相対リンクが表示されない前に新しいページがロードされます。また、UIDelegate
で試してみると、まったく読み込まれませんでした。
Obj Cが優先されますが、SwiftもOKです。
EDIT:
OK、私は質問を少し言い換えます。
ユーザーがリンクを押すと、WKWebViewを開くためにWKWebViewを停止し、そのリンクを配列に保存します。特定の条件が満たされている場合は、loadrequestを使用して手動で開くこともできます。
コードは、彼らは外部リンクを検出し、無効にするには、WWDC 2014年にビデオ206 NSURL *selectedURL = navigationAction.request.URL;
を使用しました
- (void)viewDidLoad {
[super viewDidLoad];
NSString *sURL = @"https://www.mytestingwebsite.com";
NSURL *URL = [NSURL URLWithString:sURL];
WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
[self addUserScriptsToUserContentController:theConfiguration.userContentController];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
webView.navigationDelegate = self;
webView.UIDelegate = self;
//webView.allowsLinkPreview = TRUE;
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:URL];
[webView loadRequest:nsrequest];
[self.view addSubview:webView];
}
簡単です。しかし、それは明らかに私のために働いていません。私はそれをテストするためにNSLogとブレークポイントを追加しました。
あなたは 'webView.allowsLinkPreview = false'を試みたことがありますか? – penatheboss
試してみてください。しかし、デフォルト値はfalseです。それが本当であれば、保留を押しますが、私はそれを完全に無効にし、特定の条件が満たされれば手動で開きたいと思います。 – elektricni
あなたのコードを識別するためのコードを表示します – user3182143