質問編集履歴
4
aaaaaaaaaaaaaaaaaaaaaaaaaa
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
3
aaaaaaaaaaaaaaaaaa
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
aaaaaaaaaaa
|
test
CHANGED
@@ -1,82 +1 @@
|
|
1
|
-
### 前提・実現したいこと
|
2
|
-
iOS開発初学者です。
|
3
|
-
|
4
|
-
WKWebViewを使用して画面を表示させる際、特定のドメイン以外は外部ブラウザを開くように設定しました。
|
5
|
-
現在はQiitaの画面を表示させるように設定しているのですが、QiitaのURL(https://qiita.com/) 以外にも下記のURL(Google広告のURL?)まで読み込まれ、そのURLが外部ブラウザで表示されてしまいます。
|
6
|
-
|
7
|
-
```URL
|
8
|
-
・https://c96832b57bdd3d7447d6357d67ef9bd0.safeframe.googlesyndication.com/safeframe/1-0-38/html/container.html
|
9
|
-
・https://tpc.googlesyndication.com/sodar/sodar2/225/runner.html
|
10
|
-
・https://www.google.com/recaptcha/api2/aframe
|
11
|
-
```
|
12
|
-
|
13
|
-
画面表示以外のURL以外は無視できるようにしたいのですが、可能でしょうか?
|
14
|
-
|
15
|
-
### 発生している問題
|
16
|
-
おそらく、下記のようなイメージだと考えております。
|
17
|
-
Qiitaの画面はWebViewで正常に表示され、その後にGoogle広告のURL? を外部ブラウザで開いてしまう。
|
18
|
-
``` 読み込まれるURL
|
19
|
-
[Qiitaの画面は正常にWebViewで表示される]
|
20
|
-
▿ https://qiita.com/
|
21
|
-
- _url: https://qiita.com/ #0
|
22
|
-
- super: NSObject
|
23
|
-
|
24
|
-
[次に、こちらのURLが読み込まれ、外部ブラウザが開いてしまう]
|
25
|
-
▿ https://c96832b57bdd3d7447d6357d67ef9bd0.safeframe.googlesyndication.com/safeframe/1-0-38/html/container.html
|
26
|
-
- _url: https://c96832b57bdd3d7447d6357d67ef9bd0.safeframe.googlesyndication.com/safeframe/1-0-38/html/container.html #0
|
27
|
-
- super: NSObject
|
28
|
-
▿ https://tpc.googlesyndication.com/sodar/sodar2/225/runner.html
|
29
|
-
- _url: https://tpc.googlesyndication.com/sodar/sodar2/225/runner.html #0
|
30
|
-
- super: NSObject
|
31
|
-
▿ https://www.google.com/recaptcha/api2/aframe
|
32
|
-
- _url: https://www.google.com/recaptcha/api2/aframe #0
|
33
|
-
- super: NSObject
|
34
|
-
▿ about:blank
|
35
|
-
- _url: about:blank #0
|
36
|
-
- super: NSObject
|
37
|
-
```
|
38
|
-
|
39
|
-
|
40
|
-
以下、特定のドメイン以外は外部ブラウザで表示する処理になります。
|
41
|
-
```Swift
|
42
|
-
// WebViewの表示
|
43
|
-
override func viewDidAppear(_ animated: Bool) {
|
44
|
-
|
45
|
-
webViewContent.uiDelegate = self
|
46
|
-
|
1
|
+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
47
|
-
|
48
|
-
let webUrl = URL(string: "https://qiita.com/")!
|
49
|
-
|
50
|
-
let myRequest = URLRequest(url: webUrl)
|
51
|
-
webViewContent.load(myRequest)
|
52
|
-
self.view.addSubview(webViewContent)
|
53
|
-
}
|
54
|
-
|
55
|
-
|
56
|
-
// 特定のドメイン以外は外部ブラウザを開く処理
|
57
|
-
extension WebViewController : WKNavigationDelegate {
|
58
|
-
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
|
59
|
-
let url = navigationAction.request.url!
|
60
|
-
|
61
|
-
let allowHost = "qiita.com" //許可するホスト
|
62
|
-
|
63
|
-
if let host = navigationAction.request.url?.host {
|
64
|
-
if host.contains(allowHost) {
|
65
|
-
decisionHandler(.allow)
|
66
|
-
return
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
|
-
decisionHandler(.cancel)
|
71
|
-
UIApplication.shared.open(url)
|
72
|
-
}
|
73
|
-
|
74
|
-
}
|
75
|
-
```
|
76
|
-
|
77
|
-
色々試してみようと思い情報を探し続けていたのですが、全く見つからずでしたのでご教示いただきたいです…
|
78
|
-
|
79
|
-
### 実際の動作
|
80
|
-
https://s31.aconvert.com/convert/p3r68-cdx67/c2hft-t3shw.gif
|
81
|
-
|
82
|
-
|
2
文の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
・https://www.google.com/recaptcha/api2/aframe
|
11
11
|
```
|
12
12
|
|
13
|
-
画面表示以外のURL以外は無視
|
13
|
+
画面表示以外のURL以外は無視できるようにしたいのですが、可能でしょうか?
|
14
14
|
|
15
15
|
### 発生している問題
|
16
16
|
おそらく、下記のようなイメージだと考えております。
|
1
文の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
・https://www.google.com/recaptcha/api2/aframe
|
11
11
|
```
|
12
12
|
|
13
|
-
画面表示以外のURL以外は無視
|
13
|
+
画面表示以外のURL以外は無視し、外部ブラウザへ遷移させないようにしたいのですが可能でしょうか?
|
14
14
|
|
15
15
|
### 発生している問題
|
16
16
|
おそらく、下記のようなイメージだと考えております。
|