質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

3354閲覧

実機でUIWebViewを表示できない

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/08/02 13:55

実機(私のiPhone)でUIWebViewを表示できないです。
Xcode上のエミュレーターではちゃんとUIWebViewが表示できています。

import UIKit import Foundation class ViewController: UIViewController,UIWebViewDelegate { @IBOutlet weak var webBrowser: UIWebView! override func viewDidLoad() { super.viewDidLoad() let url = NSURL(string:"http://127.0.0.1:8000/admin/accounts/") let request = NSURLRequest(url:url! as URL) self.webBrowser.delegate = self self.webBrowser.loadRequest(request as URLRequest) URLCache.shared.removeAllCachedResponses() URLCache.shared.diskCapacity = 0 URLCache.shared.memoryCapacity = 0 // Do any additional setup after loading the view, typically from a nib. } func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { return true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }

とコードを書いて実行しています。ターミナルから立てたサーバーにhttp://127.0.0.1:8000/admin/accounts/ ではアクセスしています。
なぜ自分のiPhoneではUIWebViewが表示できなくてどう直せば良いのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

2点問題があります。

1つ目
127.0.0.1 というIPアドレスは特殊なIPアドレスでlocalhostという名前でもあり、自分自身を表します。

つまりお使いのmac自分自身からアクセスするときは127.0.0.1でアクセスできるのですが、他の端末からはアクセスできません。
ターミナルでifconfigと打ってみてください。
macのローカルのIPアドレスが表示されます。例えば192.168.11.3とか。
この192.168.xxx.xxxというIPアドレスがあなたのご自宅(もしくは会社)でのローカルのIPAdressになります。xxxは環境によって変わります。ifconfigで表示されたIPアドレスに置き換えてください。

実機のiphoneのSafariにてhttp://192.168.xxx.xxx:8000/admin/accounts/でアクセスしてみてください。
ブラウザに表示できれば、アプリからWebViewで表示できるはずです。

2つ目
iOS9からATSという仕様がAppleから追加されました。
Apple Transport Securityの略で、アプリからはhttpsのサイト以外には接続できなくなるという仕様です。

もしATSなんたら というエラーメッセージが表示されてWebViewにサイトが表示されないときは、
plistを修正してATSを無効にする必要があります。

http://qiita.com/tonkotsuboy_com/items/9c056b4b2b1ffb85615e

このサイトで図入りで詳しく説明されています。

投稿2017/08/02 15:02

Tak1016

総合スコア1408

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問