คอมพิวเตอร์และอินเตอร์เน็ต,บรรยายวิชาการ,วิจัย,ศึกษากุรอาน,E-Book

วันจันทร์ที่ 21 ตุลาคม พ.ศ. 2562

INSTALLATION FOR PWA WITH PARAMETER

การสร้างระบบติดตั้ง Installation สำหรับ PWA เนื่องจากใน manifest.json จะต้องชี้ไปที่ index.php หรือ ไฟล์เดี่ยวๆเสมอ ไม่สามารถกำหนด parameter หรือ query string ได้ จึงมีวิธีแก้ดังนี้

1.สร้าง folder ใน mobile ดังนี้
เช่น /mobile/install/90001, /mobile/install/90001
2.สร้าง 2 ไฟล์ ใน /90001 ดังนี้
-index.php สำหรับกล่าวยินดีต้อนรับการติดตั้ง(จะเรียกใช้เพียงครั้งเดียวตอนติดตั้งเท่านั้น)
-preloader.php สำหรับเป็น preloader โดยมีขั้นตอนการทำงานดังนี้
ก.ใช้คำสั่ง php อ่านค่า code จาก 5 หลักสุดท้ายของ path ไว้ในตัวแปรชื่อ $appcode
ซึ่งกรณีนี้จะได้ $appcode = 90001
ข.นำค่า code ไปเรียกเปิดโปรแกรมใช้งานจริง ใน parent root ดังนี้
/mobile/index.php?offi=$appcode
3.จะเปิดโปรแกรมใช้งานตามรหัส $appcode ตามต้องการ
ปล. หากไม่มีค่า $appcode จะแสดงข้อความ "ไม่พบรหัสหน่วยงาน" โปรแกรมไม่ทำงาน

หมายเหตุ
สำหรับการติดตั้ง PWA ด้วยการสร้าง HomeScreen shortcut มีหลักดังนี้
-.เปิด chrome แล้วกรอก url เป็น /mobile/install/90001
90001 เป็นชื่อ folder ที่สร้างในข้อ 1 (ตรงตามหน่วยงานที่จะใช้งาน)
-.ต้องสร้าง folder ตรงตามรหัสของหน่วยงาน ให้ครบตรงกับฐานข้อมูล
-.ใน menifest.json ให้กำหนดเรียกใช้จากไฟล์ preloader.php


ไฟล์ index.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>OLM : Online Leave Management by Adisak</title> <!--for mobile App looklike and Apple support--> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="apple-mobile-web-app-capable" content="yes"> <link rel="manifest" href="manifest.json"> <link rel="apple-touch-icon" href="ico/v_icon.png"/> <link rel="apple-touch-icon" sizes="72x72" href="ico/v_icon.png"/> <link rel="apple-touch-icon" sizes="114x114" href="ico/v_icon.png"/> <!--//////////////////--> </head> <body> <?php /********************appcode/xxxxx/index.php by Adisak************************ OBJ : for Only installation at the First time with instarctor & welcome message *******************************************************************************/ //1.get code from foldername $url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $appcode=substr($url,strlen($url)-15,5); //ใช้ -15 ตามความยาวPath ตามชื่อไฟล์ index.php /* //TESTER echo "page URL is : ".$url; echo "<br>"; echo $appcode; die; */ //2.Get office name from DB include('../../../db_inc.php'); $q="SELECT office_name FROM olm_admin WHERE office_id ='".$appcode."'"; $result = mysql_query($q); $row = mysql_fetch_row($result); $offi_name=$row[0]; // office name //3.Show on screen ?> <div style="overflow-x:auto;"> <center> Installation by Adisak </center> <table align="center" width="90%" bgcolor="silver"> <tr><td align="center"><br><br><br><img src="../../ico/v_icon.png"></td></tr> <tr><td align="center"><font size="6" color="green">ยินดีต้อนรับการติดตั้ง Application</font></td></tr> <tr><td align="center"><font size="5" color="green">สำหรับ<?=$offi_name;?></font> </td></tr> <tr><td><font size="4" color="blue"> &nbsp;&nbsp;&nbsp; มีวิธีการดังนี้<br> &nbsp;&nbsp;&nbsp; 1.คลิกปุ่มเรียกเมนู(ที่มุมขวาบน) <br> &nbsp;&nbsp;&nbsp; 2.คลิก "เพิ่มลงในหน้าจอหลัก" <br> &nbsp;&nbsp;&nbsp; 3.คลิกปุ่ม "เพิ่ม"<br> &nbsp;&nbsp;&nbsp; 4.ปิด Chrome แล้วเรียกใช้ShortCut จากหน้าจอหลัก<br><br><br> </font> </td></tr> </table> </div> </body> </html>


ไฟล์ preloader.php
<!DOCTYPE html>
<html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css"> <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> <script src="https://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script> </head> <body> <?PHP /********************preloader.php by Adisak*************** OBJ : for redirect to real app with parameter by query string ************************************************************/ //1.get code from foldername $url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $appcode=substr($url,strlen($url)-19,5); //ใช้ -19 ตามความยาวPath ตามชื่อไฟล์ preloader.php //2.Create target link $target="../../index.php?offi=".$appcode; /* // TESTER echo "page URL is : ".$url; echo "<br>"; echo "page URL is : ".$appcode; echo "<br>"; echo "Target URL is : ".$target; die; */ //3. Redirect to link echo "<meta http-equiv='refresh' content='0;".$target."'>"; ?> </body> </html>


ไฟล์ menifest.json
{ "name": "ระบบบริหารการลา", "icons": [ { "src": "ico/v_icon.png", "sizes": "36x36", "type": "image/png", "density": 0.75 }, { "src": "ico/v_icon.png", "sizes": "48x48", "type": "image/png", "density": 1.0 }, { "src": "ico/v_icon.png", "sizes": "72x72", "type": "image/png", "density": 1.5 }, { "src": "ico/v_icon.png", "sizes": "96x96", "type": "image/png", "density": 2.0 }, { "src": "ico/v_icon.png", "sizes": "144x144", "type": "image/png", "density": 3.0 }, { "src": "ico/v_icon.png", "sizes": "192x192", "type": "image/png", "density": 4.0 } ], "start_url": "preloader.php", "display": "standalone" }


...... work สุดๆ Thank God.....
หมายเหตุ : วิธีเพิ่มหน่วยงานอื่นเข้าร่วมใช้ในAppเดียวกัน
                   เพียงสร้าง folder ด้วย รหัสหน่วยงาน ใน /mobile/install
                   เช่น  /install/90002 แล้ว copy ไฟล์ทั้งหมดลงใน folder
                   แล้วแจ้ง Link ให้ผู้เกี่ยวข้องติดตั้งตามที่สร้างไว้
                     

ไม่มีความคิดเห็น: