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

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

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

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

Q&A

解決済

2回答

5441閲覧

XcodeでWebViewをデバッグしたい【swift】

sprite

総合スコア63

Swift

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

0グッド

0クリップ

投稿2015/04/03 04:10

表題の件ですが、
XcodeのデバッグでWebを表示させたいのですが、
デバッグ時にURLの画面が表示されず、
真っ白なままです。

プログラムは、
Swift Docs
009 UIWebViewでページを表示
https://sites.google.com/a/gclue.jp/swift-docs/ni-yinki100-ios/uikit/uiwebviewdepejiwo-biao-shi
を参考に作成しました。

原因と表示方法を教えていただけませんか。
宜しくお願いします。

<<プログラム>>
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
let myWebView : UIWebView = UIWebView()

override func viewDidLoad() { super.viewDidLoad() // Delegateを設定する. myWebView.delegate = self // WebViewのサイズを設定する. myWebView.frame = self.view.bounds // Viewに追加する. self.view.addSubview(myWebView) // URLを設定する. let url: NSURL = NSURL(string: "http://www.apple.com")! // リクエストを作成する. let request: NSURLRequest = NSURLRequest(URL: url) // リクエストを実行する. myWebView.loadRequest(request) } /* Pageがすべて読み込み終わった時呼ばれる */ func webViewDidFinishLoad(webView: UIWebView!) { println("webViewDidFinishLoad") } /* Pageがloadされ始めた時、呼ばれる */ func webViewDidStartLoad(webView: UIWebView!) { println("webViewDidStartLoad") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() }

}

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

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

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

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

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

guest

回答2

0

ベストアンサー

自分もこの上記の回答通りだと思いますが、その場合は"webViewDidFinishLoad"のデバック出力が出ないので
まずそれを確認してください。

それでも正常に表示されない場合は、
①webViewDidFinishLoadに出力されたHTMLソースを表示させてください。正常に表示される場合は
ページ側の問題です。
②myWebViewのイベントにエラーハンドリングがありません。これがないとアプリが完成しても審査が通らないので
今の機会に実装しましょう。対象URLとエラーコードで状況は把握できるはずです。


/* Pageがすべて読み込み終わった時呼ばれる */ func webViewDidFinishLoad(webView: UIWebView!) {

追加→ println(String(format: "HTML=%@",myWebView.stringByEvaluatingJavaScriptFromString("document.getElementsByTagName('html')[0].innerHTML")))
println("webViewDidFinishLoad")
}

↓追加
/*
エラー時の表示
*/
func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
println(String(format: "URL=%@",myWebView.stringByEvaluatingJavaScriptFromString:@"document.URL")))
println(String(format: "ERROR=%@",error?.localizedDescription))
}

投稿2015/04/03 12:48

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

こんにちは。

UIWebViewで指定したWebサイト(この場合は Apple)を表示するだけでしたら、記載していただいたソースコードで問題なく AppleのWebサイトが表示されます。

もしかしたら、メモリー不足などが原因で表示に時間がかかっているだけかもしれません。

ちなみに、下記の画像は、同ソースコードを僕が試してみた際のスクリーンショットです。
![イメージ説明]WIDTH:600

投稿2015/04/03 05:00

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問