แชร์วิธีการเทส deeplink สำหรับ Android Developer

Android Aug 11, 2023

implement deeplink หรือ scheme link ต่าง ๆ แล้วก็ต้องเทสเนอะ อาจจะมองว่าเป็นเรื่องเล็ก ๆ แต่จริง ๆ ก็มีหลากหลายวิธีเช่นกันเนอะ ที่ทำให้ชีวิตเราสะดวกขึ้น

หลาย ๆ คน คงจะได้ implement เกี่ยวกับการเปิด scheme link ต่าง ๆ ในแอพ ไม่มากก็น้อย ในบล็อกนี้เราจะมาแชร์วิธีการเทสกัน จาก basic สู่อะไรสักอย่าง 555

ในที่นี้เราจะเทสกันโดยใช้ deeplink ในการเปิด Facebook Page ของเรากัน fb://page/179714922161821

และมีวิธีไหนบ้างที่เราพบเจอ มาดูกันเลยดีกว่า

บันทึกไว้ในแอพ Notes บนมือถือ

ก้อปตัว deeplink ไว้ในแอพ Notes ที่มีให้บนมือถือปกติเลย อาจจะพิมพ์เพิ่มว่า deeplink นี้คืออะไร

เวลาเปิดก็กดตรงลิ้งได้เลย มันจะ redirect ไปแอพนั้น ๆ เอง แต่มักจะไม่ค่อยได้ เลย copy deeplink ตรงนี้ไปเปิดที่ browser เองมากกว่า แหะ ๆ

scan QR Code

ปกติเราใช้เว็บนี้กัน https://www.qr-code-generator.com/

พิมพ์ deeplink ที่เราต้องการ แล้วรอให้เว็บ generate QR Code มาให้ แล้วก็เอามือถือของเรา scan ได้เลย ง่ายสุด scan ผ่าน Google Lens ผ่าน LINE หรือแอพ scanner ต่าง ๆ และเราสามารถ save QR Code ที่ได้เก็บไว้ได้ด้วย

ใช้ command

วิธีนี้เราใช้ความสามารถของ ADB โดยพิมพ์คำสั่งบน terminal ดังนี้

adb shell am start -W -a android.intent.action.VIEW -d "{scheme_link}" {package_name}
  • scheme_link ในที่นี้เป็น fb://page/179714922161821
  • package_name เช่น ของ facebook จะเป็น com.facebook.katana

ตัวอย่าง

adb shell am start -W -a android.intent.action.VIEW -d "fb://page/179714922161821" com.facebook.katana

เมื่อพิมพ์เสร็จ มันจะเข้าไปที่แอพนั้น ๆ ได้เลย

สามารถดูวิธีสร้าง และวิธีการเทส ได้จาก document นี้เลยจ้า

Create Deep Links to App Content | Android Developers
To allow users to enter your app from links, you must add intent filters for the relevant activities in your app manifest. These intent filters allow deep linking to the content in any of your activities…
https://developer.android.com/training/app-links/deep-linking

ส่วนอันนี้เคยเขียนนานมาแล้ว ยัง appiled ได้ตามนี้อยู่นะ

การเปิด deep link เข้าหน้า android app โดยย่อ และทดสอบอย่างง่ายๆ
สวัสดีทุกท่าน วันนี้มาแบบง่ายๆ เบาๆ ถึงอาหารคลีนมันจะไม่แซ่บ แต่มีประโยชน์นะเออ กับการทำ deep link นั่นเอง (draft…
https://www.mikkipastel.com/deep-link-android-app/

ทำไฟล์ Google Sheet เพื่อ generate QR Code ออกมา

ในเมื่อเราทำงานเยอะ อาจจะมีหลงลืมไปบ้าง บางคนอาจจะทำเป็น Google Sheet ให้ในทีมได้ใช้งานต่อกัน

มาทำความเข้าใจจาก document คร่าว ๆ กันก่อนเลย

QR Codes | Infographics | Google for Developers
https://developers.google.com/chart/infographics/docs/qr_codes

อันนี้ลิ้ง generate QR Code ที่ใช้ มี root url คือ https://chart.googleapis.com/chart?

https://chart.googleapis.com/chart?chs=350x350&cht=qr&chl=fb://page/179714922161821

ในส่วนของ parameter ที่ต้องใส่

  • cht=qr บอกว่าขอเป็น QR Code น้า
  • chs=<width>x<height>: ขนาดที่เราต้องการ ในที่นี้ คือ 350 x 350
  • chl=<data>: url deeplink ที่เราต้องการ ในที่นี้ก็เป็น fb://page/179714922161821 เนอะ

และพอนำไปใช้ใน Google Sheet เราก็จะใส่คำสั่ง image ครอบเข้าไปแบบนี้

=image("https://chart.googleapis.com/chart?chs=350x350&cht=qr&chl=" & ENCODEURL("fb://page/179714922161821"))

เราก็สามารถทำเป็น dynamic เวลาใส่ deeplink อันอื่น จะเป็นแบบนี้

=image("https://chart.googleapis.com/chart?chs=350x350&cht=qr&chl=" & ENCODEURL(A1))

เมื่อเราเทสหลาย ๆ link แล้วอาจจะมีหลง ๆ ลืม ๆ ไปบ้าง เว็บ Deep Link Generator สามารถช่วยคุณได้ โดยการพิมพ์ชื่อ deeplink และตามด้วย url ที่ต้องการ อาจจะใส่ tag color เพื่อความเป็นหมวดหมู่ก็ได้นะ

https://akexorcist.github.io/deep-link-generator/

เวลาเทสก็กดเปิดได้เลย มันจะ redirect เข้าแอพเองเลย

ทำแอพไว้ใช้กันภายในทีม

วิธีนี้เหมาะกับทีมที่มีขนาดใหญ่ และมี deeplink ใด ๆ เยอะแยะมากมายก่ายกองเต็มไปหมด และมีหลาย ๆ feature

วิธีการ implement ไปเปิด website ตอนขาเปิดเว็บแบบคร่าว ๆ

val deeplink = "fb://page/179714922161821"
val webIntent: Intent = Uri.parse(deeplink).let { webpage ->
    Intent(Intent.ACTION_VIEW, webpage)
}

วิธีที่เรารวบรวมมาก็มีประมาณนี้ และของเพื่อน ๆ มีวิธีอื่นใดอีกบ้างนะ สามารถมาบอกกันได้เลย


ติดตามข่าวสารตามช่องทางต่าง ๆ และทุกช่องทางโดเนทกันไว้ที่นี่เลย

ติดตามข่าวสารแบบไว ๆ มาที่ Twitter เลย บางอย่างไม่มีในบล็อก และหน้าเพจนะ

Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.