วิธีนี้ใช้วิธีการเพื่อให้คุณสามารถป้อนสตริงใด ๆ แทนการมีอินพุตคงที่ วิธีนี้จะบันทึกรหัสบางบรรทัดหากใช้จำนวนครั้งซ้ำ ๆ เนื่องจากคุณต้องการเพียงสามบรรทัดในการเรียกใช้เมธอด
public Intent getWebIntent(String url) {
//Make sure it is a valid URL before parsing the URL.
if(!url.contains("http://") && !url.contains("https://")){
//If it isn't, just add the HTTP protocol at the start of the URL.
url = "http://" + url;
}
//create the intent
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)/*And parse the valid URL. It doesn't need to be changed at this point, it we don't create an instance for it*/);
if (intent.resolveActivity(getPackageManager()) != null) {
//Make sure there is an app to handle this intent
return intent;
}
//If there is no app, return null.
return null;
}
การใช้วิธีนี้ทำให้สามารถใช้งานได้ในระดับสากล ไม่จำเป็นต้องติดตั้งไอทีในกิจกรรมเฉพาะเนื่องจากคุณสามารถใช้งานได้เช่นนี้:
Intent i = getWebIntent("google.com");
if(i != null)
startActivity();
หรือถ้าคุณต้องการที่จะเริ่มต้นนอกกิจกรรมคุณเพียงแค่เรียก startActivity กับกิจกรรม:
Intent i = getWebIntent("google.com");
if(i != null)
activityInstance.startActivity(i);
ตามที่เห็นในบล็อกโค้ดทั้งสองนี้จะมีการตรวจสอบค่าว่าง นี่เป็นเพราะมันคืนค่า null หากไม่มีแอพที่จะจัดการกับเจตนา
เมธอดนี้ใช้ค่าเริ่มต้นเป็น HTTP หากไม่มีการกำหนดโปรโตคอลเนื่องจากมีเว็บไซต์ที่ไม่มีใบรับรอง SSL (สิ่งที่คุณต้องการสำหรับการเชื่อมต่อ HTTPS) และจะหยุดทำงานหากคุณพยายามใช้ HTTPS และไม่มี . เว็บไซต์ใด ๆ ยังคงสามารถบังคับให้ใช้กับ HTTPS ได้ดังนั้นฝ่ายต่างๆจะนำคุณเข้าสู่ HTTPS อย่างใดอย่างหนึ่ง
เนื่องจากวิธีนี้ใช้ทรัพยากรภายนอกเพื่อแสดงหน้าเว็บคุณไม่จำเป็นต้องประกาศสิทธิ์อินเทอร์เน็ต แอพที่แสดงหน้าเว็บต้องทำเช่นนั้น