ถ้า Mobile แอพของเราต้องทำงานกับข้อมูลขนาดใหญ่ และอัพเดตอยู่เสมอ การเอาส่วนที่ทำงานกับข้อมูลไปไว้ที่ Web service เป็นทางเลือกที่ไม่เลวเลย Facebook และ Instagram หรือ Twitter ต่างก็ทำแบบนี้ คือเลือกที่จะเก็บข้อมูลบางส่วนไว้ และเอาข้อมูลขนาดใหญ่ไปอยู่ที่ server แทน
แต่ถ้า Mobile app ที่เราสร้างขึ้นจาก PhoneGap มันส่งข้อมูลไปที่ Web service ไม่ได้ ส่งไปแล้วนิ่ง มันเกิดอะไรขึ้น!? ปัญหาบางอย่างเหมือนเส้นผมบังภูเขา ลองไล่เช็ค 3 ข้อนี้ดู คุณอาจจะขึ้นบางอ้อ เกาหัวแกรกๆ ด้วยความเขินแบบผม “โถ่ ปัญหาแค่นี้เอง”
1. เผลอปิดสัญญาณการเชื่อมต่อ Internet หรือ Network!
อั่นหน่ะ คิดว่าใครมันจะลืมไปปิดส่วนนั้นเล่า! มีนะครับ บางทีเราลืมไป เปิด Airplane mode ค้างไว้ หรือว่าปิด Wifi แล้ว 3G ต่อไม่ติดก็มี! ทุกอย่างที่เข้าข่ายการปิดกั้นสัญญาณ ไม่ให้เครื่อง smartphone หรือ tablet ของเราต่อกับโลกภายนอกได้นั้น จะทำให้ code ใน PhoneGap application สิ่งสนิทไปอย่างน่ารักๆ เลยทีเดียว
ส่วนนี้ป้องกันได้โดยใช้ Connection API หรือเขียน code javascript ดัก timeout ไว้เพื่อแสดงปัญหาก็ได้เช่นกัน
2. IP เครื่อง server เปลี่ยน!
ปัญหาที่เคยป้อนหญ้าให้ผมและเพื่อนๆ มาแล้ว คือตอนพัฒนาเนี่ย เราไม่ได้ตั้งค่า IP เครื่องที่ใช้เป็น server ให้คงที่ครับ ดังนั้นพอมีปัญหากับ Network หรือ restart เครื่อง server ใหม่ จะมีโอกาสที่ IP ปลายทางที่เราอาจจะใส่ไว้ใน code ของ PhoneGap application ของเรา กลายเป็นวิ่งหายไปใน Network เพราะเครื่อง server ดันได้ IP ใหม่ไปซะนี่
3. Domain name ของ web service ไม่อยู่ใน White List
White List หรือที่ผมเรียกกันสนุกๆ กับนักเรียนในว่า “บัญชีขาว” มีหน้าที่ควบคุมการติดต่อจากตัว applciation ไปยัง web service ต่างๆ ซึ่งเราสามารถมาแก้ไข เพื่อควบคุม domain name ของ Web service ที่แอพเราจะติดต่อไปได้ หลายๆ ครั้งขณะพัฒนาเราจะลืมส่วนนี้ไป ทำให้เรียกข้อมูลจาก web service (เช่น Google Maps API หรือ Facebook API) ไม่สามารถทำได้ มันไปติดที่ White List นั่นเองครับ
วิธีการกำหนด White List ของแอพ Android ดูได้ที่นี่ และวิธีเขียน White List ของ iOS App ดูได้ที่นี่ครับ
สนใจเรื่อง Web Design, Adobe for Web, และ PhoneGap ฝาก Email รับบทความใหม่ๆ จากผมได้ที่นี่ครับ
ดูเนื้อหารวมเรื่อง PhoneGap ได้ที่ nextflow.in.th/phonegap