Here we will learn iOS UI webview in swift with example and how to use iOS UI webview control in swift to load URL or embed websites or load HTML string in an application using xcode.
In iOS, webview control is used to embed websites within the application or show rich HTML web content inside of the app and the iOS webview control will act as an HTML iframe to show the website content within an app.
In iOS webview we have functionality support for forwarding and backward navigation. In case if users use webview to navigate multiple pages it’s better to enable forward and backward navigation, by default that functionality is disabled in our applications.
If we use iOS webview to embed websites in our applications that will be like as shown below
We can use Web View in our iOS applications by adding UIWebView class reference.
Now we will see how to use iOS UI Web view in our iOS applications with example.
To create new project in iOS open Xcode from /Applications folder directory. Once we open Xcode the welcome window will open like as shown below. In the welcome window click on the second option “Create a new Xcode Project” or choose File à New à Project.
After selecting “Create a new Xcode project” a new window will open in that we need to choose template.
The new Xcode window will contain several built-in app templates to implement common types of iOS apps like page-based apps, tab-based apps, games, table-view apps, etc. These templates are having pre-configured interface and source code files.
For this iOS WebView example, we will use most basic template “Single View Application”. To select this one, Go to the iOS section on the left side à select Application à In the main area of dialog select “Single View Application” and then click on the next button like as shown below.
After click Next we will get a window like as shown below, in this we need to mention project name and other details for our application.
Product Name: “iPhone Articles”
The name whatever we enter in Product Name section will be used for the project and app.
Organization Name: “Tutlane”
You can enter the name of your organization or your own name or you can leave it as blank.
Organization Identifier: “com.developersociety”
Enter your organization identifier in case if you don't have any organization identifier enter com.example.
Bundle Identifier: This value will generate automatically based on the values we entered in Product Name and Organization Identifier.
Language: “Swift”
Select language type as “Swift” because we are going to develop applications using swift.
Devices: “Universal”
Choose Devices options as Universal it means that one application is for all Apple devices in case if you have any specific requirement to run an app only for iPad then you can choose the iPad option to make your application restricted to run only on iPad devices.
Use Core Data: Unselected
This option is used for database operations. In case if you have any database related operations in your application select this option otherwise unselect the option.
Include Unit Tests: Unselected
In case if you need unit tests for your application then select this option otherwise unselect it.
Include UI Tests: Unselected
In case if you need UI tests for your application then select this option otherwise unselect it.
Once you finished entering all the options then click on Next button like as shown below.
Once we click on Next button new dialog will open in that we need to select the location to save our project. Once you select the location to save project then click on Create button like as shown below.
After clicking on the Create button, the Xcode will create and open a new project. In our project Main.storyboard and ViewController.swift are the main files that we used to design app user interface and to maintain source code.
Main.storyboard - Its visual interface editor and we will use this file to design our app user interface
ViewController.swift - It contains source code of our application and we use this file to write any code related to our app.
Now in project select Main.storyboard file the Xcode will open visual interface editor like as shown below.
Now select ViewController.swift file in your project that view will be like as shown below.
Now we will add controls to our application for that open Object Library. The Object Library will appear at the bottom of Xcode in right side. In case if you don't find Object library, click on the button that is in the third position from the left in the library selector bar like as shown below. (Alternatively, you can choose View à Utilities à Show Object Library).
As we discussed our user interface will be in Main.storyboard file so open Main.storyboard file. Now in Object library search for the WebView in Filter field then drag and drop the WebView into Main.storyboard ViewController like as shown below.
Now we will make a connection between controls and ViewController.Swift code for that click on the assistant button (overlap circle) in Xcode toolbar right side corner like as shown below
To map the control, press Ctrl button in keyboard and drag the Web View from canvas interface and drop into ViewController.swift file like as shown below
Once finished mapping controls to ViewController.swift file then write the custom code to show content Web View. Once we write required functionality our ViewController.swift file code will be like as shown below
import UIKit
class WebViewController: UIViewController {
@IBOutlet weak var WebView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let indexPaths =NSURL(string: "http://tutlane.com/");
let requestObj = NSURLRequest(URL: url!);
WebView.loadRequest(requestObj);
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Now we will run and check the output of the application. To run the application, select the required simulator (Here we selected iPhone 6s Plus) and click on Play button, located at the top-left corner of the Xcode toolbar like as shown below.
While running your application in case if it loaded and showing required page then fine otherwise we need to add permission settings in info.plist file.
To make changes Go to info.plist file in your project and in the last row we have “App Transport Security Settings” property in that click on plus button and change “Allow Arbitrary Loads” property to Yes in left side textbox.
After that select “Exception Domains” and in which we have “Profile” property in that give URL in right side which you want to access at this time. Here we want to access www.tutlane.com so we entered this URL.
Once we finished all configurations now run the application by using the Play button in Xcode editor.
Following is the result of the iOS WebView application in swift.
This is how we can use iOS UI WebView control in swift to embed websites within our application based on our requirements.