การทำ Application ในหลายๆครั้งจะมีการ โปรโมท (promote) หรือแคปเปน (campaign) หรือ บูท ฯลฯ ศัพท์ต่างๆทางด้าน Marketing แล้วต้องการเก็บค่าเพื่อมาวิเคราะห์ได้ว่ามาจากที่ไหน หรืออาจอยากให้อำนวยความสะดวกถ้า Login จาก เวปแล้วกดิเข้า Application ได้เลยไม่ต้อง Login ใหม่
ซึ่งทำให้เราจำเป็นจะต้องมีการส่ง ค่า (parameter) บางอย่างเพิ่อให้ Application นำไปอ้างอิงรู้ว่าเป็นรหัสอะไร ใน IOS มีขั้นตอนการทำดังนี้
1. สร้างตัวอ้างอิงสำหรับ รับค่าจากภายนอก โดยสร้างที่ไฟล์ info.plist
– URL Schemes ใช้สำหรับอ้างอิง Protocol เรียก Application ของเรา ยกตัวอย่างในภาพ ผมใช้ uptoyou เวลาทำ Links จากภายนอก ก็ให้ใช้เป็น uptoyou://?{parameter}
– URL identifier เพื่อใช้อ้างอิงหากมีหลายๆแหล่งที่เปิดร้บ
2. เพิ่ม Code สำหรับนำค่าไปใช้ ให้เพิ่มที่ appdelegate.swift
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
let urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false)
let items = (urlComponents?.queryItems)! as [NSURLQueryItem]
print(urlComponents)
print(items)
}
3. ทำ Links สำหรับคลิกจากภายนอกเข้า จากตัวอย่างข้างบนจะเป็น
<html>
<body>
<a href=”uptoyou://?parameter=123″>open application</a>
</body>
</html>
เท่านี้เราก็สามารถนำค่าต่างๆไปใช้ใน Application ได้แล้ว
การส่งค่าเข้า Application นั่นไม่ยาก เพียงแต่ต้องเข้าใจโครงสร้างหรือวิธีเขียนเท่านั่น
แต่ในความสะดวกสบาย ก็ต้องแลกมากับความปลอดภัยที่น้อยลง ด้วยวิธีการส่งค่า ผ่าน Parameter ก็มีข้อเสียตรงที่คนที่มีลิ้งนี้จะสามารถเห็น Parameter ที่ต่อท้าย URL ทำไห้สามารถลองเปลี่ยนค่าเล่นได้ ถ้าให้แนะนำควรเป็น Parameter ที่ ไม่สำคัญนักใช้สำหรับอ้างอิงเท่านั่น หรือควรมีฟังชั่นไว้ตรวจสอบก่อนนำไปใช้
Referent : The Complete Tutorial on iOS/iPhone Custom URL Schemes