質問編集履歴

4

aaaaaaaaaaaaaaaaaaaaaaaaaa

2023/03/20 01:10

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
File without changes

3

aaaaaaaaaaaaaaaaaa

2023/03/20 01:09

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【Swift】WKWebViewで特定のドメイン以外は外部ブラウザで開けるように設定するしたいが、余計なURLが読み込まれてしまう
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
- webViewContent.navigationDelegate = self
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

文の修正

2022/06/30 09:38

投稿

退会済みユーザー
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

文の修正

2022/06/30 09:37

投稿

退会済みユーザー
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
  おそらく、下記のようなイメージだと考えております。