「Ios/swift/WebView」の版間の差分
提供: 初心者エンジニアの簡易メモ
行41: | 行41: | ||
普通にcssの以下のようなstyleを追加 | 普通にcssの以下のようなstyleを追加 | ||
<div style='word-break: break-all'> | <div style='word-break: break-all'> | ||
+ | |||
+ | ==webviewからネイティブへ== | ||
+ | webViewメソッドが用意されている | ||
+ | html += "<a href='native://hogehoge'>hogehoge</a>" | ||
+ | func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { | ||
+ | if let url = request.URL?.absoluteString { | ||
+ | if url.hasPrefix("native://") { | ||
+ | print(url) | ||
+ | return false // ページ遷移を行わないようにfalseを返す | ||
+ | } | ||
+ | } | ||
+ | return true | ||
+ | } | ||
+ | 参考:http://qiita.com/tyfkda/items/14cebb890f1d3fa40bda |
2016年7月29日 (金) 09:12時点における版
WebViewとは
ブラウザの表示ができるView
使い方
- StroyboardでViewControllerをstoryboard画面内にドラッグし貼り付ける
- ViewController内にWebViewをドラッグし貼り付ける
- WebViewを選択しAutolayoutを画面いっぱい(上下を0、左右を-20)で指定する
- 作成したViewControllerのクラス名を"WebViewController"にし
- WebViewControllerのStoryboardIdを"WebViewControllerId"にする
- WebViewControllerのクラスファイルを作成し以下のように
- WebViewオブジェクトとの紐付けもする
-WebViewController.swift
import UIKit class WebViewController: UIViewController ,UIWebViewDelegate { @IBOutlet var mainWebView : UIWebView! private var _targetURL = "http://google.com" override func viewDidLoad() { super.viewDidLoad() mainWebView.delegate = self; loadAddressURL() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func loadAddressURL() { let requestURL = NSURL(string: _targetURL) let req = NSURLRequest(URL: requestURL!) mainWebView.loadRequest(req) } }
以下エラーが出る場合
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController
storyboardのWebViewControllerのCustomClassのモジュール名がNoneになってる場合は一旦xcodeを再起動する(current-project名などになってればok)
htmlを直で記述する場合は以下のように
mainWebView.loadHTMLString("hogehoge", baseURL: requestURL)
長文半角文字列でブラウザの枠を突き抜ける場合
普通にcssの以下のようなstyleを追加
webviewからネイティブへ
webViewメソッドが用意されている
html += "<a href='native://hogehoge'>hogehoge</a>" func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { if let url = request.URL?.absoluteString { if url.hasPrefix("native://") { print(url) return false // ページ遷移を行わないようにfalseを返す } } return true }参考:http://qiita.com/tyfkda/items/14cebb890f1d3fa40bda