1/14

Lecture Mobile Application Development (119310)

iOS Development - Framework Basics Part III

2/14

Agenda

3/14

WKWebView successor of UIWebView

  • WKWebView (part of WebKit) / UIWebView (part of UIKit) components allow to open HTML content in your app
    • Works similar to the Android WebView component
    • With new apps use WKWebView as UIWebView is deprecated since iOS 9.0
    • WKWebView is part of the WebKit framework, so you need to import WebKit in your class
  • To load a Website:

    1. Create a URL? object (since Swift 3.0, formerly NSURL, please be aware that this is optional value): let url = URL(string: "https://www.hdm-stuttgart.de")

    2. Create a URLRequest object: let urlRequest = URLRequest(url: url!)

    3. Call load Request on WKWebView:

      let webView = WKWebView()
      webView.loadRequest(urlRequest)
      

50%

4/14

App Transport Security

center 70%

5/14

WKNavigationDelegate

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    //Called when the navigation is complete.
}

func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    //Called when web content begins to load in a web view.
}

func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
    //Called when an error occurs during navigation.    
}
6/14

UIApplication

center 70%

7/14

Network Access Indicator

UIApplication.shared.isNetworkActivityIndicatorVisible = true
8/14

MPMediaQuery

let query = MPMediaQuery()

guard let items = query.items else {
    debugPrint("Error: query has no items object")
	return
}

if items.count == 0 {
    debugPrint("Error: no items found")
	return
}

for item in query.items! {
    if let artist = item.value(forProperty: MPMediaItemPropertyArtist)  {
        artists.append(artist as! String)
    }
}
9/14

MPMediaItem

if let artist = item.artist {
    print("Artist: \(artist)")
}
import MediaPlayer
10/14

Medialibrary request authorisation

MPMediaLibrary.requestAuthorization { (status) in
    if status == .authorized {
        self.readMediaLibrary()
    } else {
        self.showError()
    }
}
11/14

Medialibrary Authorisation Status

var error: String
switch MPMediaLibrary.authorizationStatus() {
    case .restricted:
        error = "Media library access restricted by corporate or parental settiongs"
    case .denied:
        error = "Media library access denied by user"
    default:
        error = "Unkown error"
}

12/14

Medialibrary User Information

center 70%

13/14

Artist Explorer Assignment

14/14

References