Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 ·...
Transcript of Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 ·...
![Page 1: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/1.jpg)
© Santiago Pavón - UPM-DIT
Desarrollo de Apps para iOS Web Views
IWEB 2015-2016Santiago Pavón
ver: 2015.11.16
1
![Page 2: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/2.jpg)
© Santiago Pavón - UPM-DIT
UIWebView
Es una UIView que contiene una navegador web.
Puede mostrar distintos tipos de contenido:- URL de una página web remota.- string conteniendo HTML.- bytes + tipo MIME.
PDFs.
Basado en WebKit - Proyecto Open Source- funcionalidad limitada- Soporta JavaScript (límite almacenamiento 10 MB).
2
![Page 3: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/3.jpg)
© Santiago Pavón - UPM-DIT
Mostrar Contenidos
Petición asíncrona a un URL:
func loadRequest(_ request: NSURLRequest)
Carga un string conteniendo HTML:
func loadHTMLString(_ string: String, baseURL baseURL: NSURL?)
Carga bytes:
func loadData(_ data: NSData, MIMEType MIMEType: String, textEncodingName textEncodingName: String, baseURL baseURL: NSURL)
3
![Page 4: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/4.jpg)
© Santiago Pavón - UPM-DIT
Ejemplos
let webView = UIWebView() if let url = NSURL(string: "http://www.upm.es") { let req = NSURLRequest(URL: url)
webView.loadRequest(req)} webView.loadHTMLString("<a href='upm.es'>UPM</a>", baseURL: nil)
4
![Page 5: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/5.jpg)
© Santiago Pavón - UPM-DIT
Propiedades y MétodosPropiedades:
delegate (IBOutlet)requestloadingcanGoBackcanGoForwarddetectsPhoneNumbers scalesPageToFit dataDetectorTypesscrollView…
Métodos:stopLoading (IBAction)reload (IBAction)goBack (IBAction)goForward (IBAction)stringByEvaluatingJavaScriptFromString:…
5
![Page 6: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/6.jpg)
© Santiago Pavón - UPM-DIT
UIWebViewDelegate
Se llama si falla la carga del contenido.
func webViewDidFinishLoad(_ webView: UIWebView)
Se lama antes de empezar a cargar contenido.
func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType navigationType: UIWebViewNavigationType) -> Bool
Se llama tras terminar la carga del contenido.
func webViewDidFinishLoad(_ webView: UIWebView)
Se llama tras empezar la carga del contenido.
func webViewDidStartLoad(_ webView: UIWebView)
6
![Page 7: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/7.jpg)
© Santiago Pavón - UPM-DIT
Permitir Conexiones HTTPAñadir en Info.plist
7
![Page 8: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/8.jpg)
© Santiago Pavón - UPM-DIT
Añadir a Info.plist:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/>
</dict><key>CFBundleDevelopmentRegion</key><string>en</string><key>CFBundleExecutable</key><string>$(EXECUTABLE_NAME)</string><key>CFBundleIdentifier</key><string>$(PRODUCT_BUNDLE_IDENTIFIER)</string><key>CFBundleInfoDictionaryVersion</key>
. . .
8
![Page 9: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/9.jpg)
© Santiago Pavón - UPM-DIT
Demo: Browser
Hacer un navegador Web.
Incluir:
- área para el contenido web
- barra de direcciones
- botones back, forward, stop, reload
9
![Page 10: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/10.jpg)
© Santiago Pavón - UPM-DIT
Framework : WebKit
10
![Page 11: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/11.jpg)
© Santiago Pavón - UPM-DIT
WebKitFramework más avanzado que proporciona la vista WKWebView.
- Mejores prestaciones, mejor soporte de gestos, …
- Mayor control en el proceso de carga de páginas.
Varios tipos de delegados que pueden seguir el progreso de la carga.
- Propiedades observables (KVO): título, progreso, URL.
- User Scripts:
Podemos inyectar código javascript en las páginas visualizadas.
- Script Messages:
El código nativo puede recibir notificaciones desde el javascript inyectado.
- . . .
11
![Page 12: Desarrollo de Apps para iOS Web Views - UPMsantiago/docencia/ios/2014... · 11/16/2015 · Framework más avanzado que proporciona la vista WKWebView.-Mejores prestaciones, mejor](https://reader033.fdocuments.ec/reader033/viewer/2022041604/5e32c7ec89d42125065fe71b/html5/thumbnails/12.jpg)
© Santiago Pavón - UPM-DIT
12