BeginningDeveloperFeaturediOS DeveloperNewbieProgramming LanguageSwift

เขียนแอพ iPhone ด้วย Swift การแสดงผลหน้าเว็บไซต์ด้วย UIWebView

วิธีการพัฒนาแอพพลิเคชันด้วยภาษา Swift บน iOS8 ด้วย XCode6 BETA กับการเรียกหน้าเว็บไซต์แบบ MobileWeb มาแสดงผลด้วย UIWebView โดยมีการเขียนแบ่งออกเป็น 2แบบครับ

ขอแนะนำให้ศึกษาบทความก่อนหน้านี่ก่อนเหมือนเดิมเพื่อความเข้าใจ

รอบนี้จะสร้าง Project ขึ้นมาใหม่ 2 แบบ การแสดงผลหน้าเว็บไซต์นั้น โดยใช้ UIWebView จับมาแสดงผลตามขนาดของ Widget และอีกวิธีคือการใช้ View นี่แหละเป็นการควบคุมขนาดของ WebView อีกทีให้แสดงผลพอดีหน้าจอ

แบบใช้ Widget ครับ ให้ New Project ขึ้นมาเป็น Single View Application

Screen Shot 2557-06-11 at 8.02.17 PM

ตั้งชื่อให้เรียบร้อย

Screen Shot 2557-06-27 at 2.54.24 PM
ตั้งชื่อครับ

ต่อจากนั้นให้ ลาก Object หรือ Widget ไปวางที่หน้า ViewController

เลือก WebView
เลือก WebView
วางซะ
วางซะ

คลิกที่ WebView Object กดปุ่ม Ctrl ค้างไว้แล้วลากไปที่ไฟล์ ViewController.swift เพื่อสร้าง IBOutlet ครับ

Screen Shot 2557-06-27 at 2.44.21 PM

ตั้งชื่อว่า SimpleWebView ครับ จะมีการสร้าง code ให้ทันที

@IBOutlet var SimpleWebview : UIWebView = nil

ต่อจากนั้นให้ไปเปิดไฟล์ Viewcontroller.swift มาเพิ่ม code ต่อ

override func viewDidLoad() {
        super.viewDidLoad()
        var url = NSURL(string:"http://www.cleothailand.com/")
        var request = NSURLRequest(URL:url)
        SimpleWebview.loadRequest(request)
    }

กด Run ดูการแสดงผลแอพพลิเคชันของเราครับ

Screen Shot 2557-06-27 at 2.53.52 PM

ต่อมาเป็นอีกแบบครับ ใช้ View เป็นการแสดงผล ให้สร้าง Single View Application ใหม่มาตัวนึงครับ

Screen Shot 2557-06-27 at 2.39.53 PM

ให้ลาก View เลยครับไปวางที่ ViewController.swift ประกาศ IBOutlet ใหม่เลย ตัวอย่างที่ผมตั้งคือ

@IBOutlet var MainView : UIView = nil

เพิ่ม Import ส่วนของ Header ลงไปตามนี้ครับ

import UIKit
import WebKit

ต่อมาให้ประกาศตัวแปร SimpleWebView เป็น WKWebView ครับ

@IBOutlet var MainView : UIView = nil
    var SimpleWebView: WKWebView?

เพิ่ม Function ตอนโหลดหน้าแอพพลิเคชันครั้งแรกขึ้นมาคือ

override func loadView() {
        super.loadView()
        self.SimpleWebView = WKWebView()
        self.view = self.SimpleWebView
    }

และเพิ่มคำสั่งการโหลดหน้าเว็บ ใน ViewDidLoad() ตามนี้

override func viewDidLoad() {
        super.viewDidLoad()
        var url = NSURL(string:"http://www.cleothailand.com/")
        var request = NSURLRequest(URL:url)
        self.SimpleWebView!.loadRequest(request)
    }

ภาพรวมของ Code ทั้งหมดจะเป็นแบบนี้

import UIKit
import WebKit

class ViewController: UIViewController {
                            
    @IBOutlet var MainView : UIView = nil
    var SimpleWebView: WKWebView?
    
    override func loadView() {
        super.loadView()
        self.SimpleWebView = WKWebView()
        self.view = self.SimpleWebView
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        var url = NSURL(string:"http://www.cleothailand.com/")
        var request = NSURLRequest(URL:url)
        self.SimpleWebView!.loadRequest(request)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

ลอง Run ตัวแอพพลิเคชันของเราอีกครั้งครับ

Screen Shot 2557-06-27 at 2.58.38 PM

แสดงผลเหมือนกัน แต่ Fit Layout มากกว่า

หวังว่าคงจะช่วยได้นะครับ Swift ไม่ยากอย่างที่คิด  Source Code ไม่ต้องมีหรอก Copy ไปก็รันได้แล้ว 😀

 

 

 

 

 

 

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน