คำนำ
เมื่อเร็ว ๆ นี้มีการโต้ตอบกับ WebView มากมาย
ใช้ WebViewClient
การใช้ WebViewClinet ส่วนใหญ่สืบทอดคลาส WebViewClient เขียนวิธีใหม่ตามต้องการและกำหนดค่าใน WebView
WebView = (WebView) FindViewById (R.ID.WebView); ;} @Override บูลีนสาธารณะ shoulriderideurlloading (มุมมอง WebView, url สตริง) {view.loadurl (url); OnloadRsource (มุมมอง WebView, url สตริง) {super.onloadresource (ดู, url);
วิธี WebViewClient
1. BestoverRideUrlloading (มุมมอง WebView, String url)
หมายเหตุอย่างเป็นทางการ: ให้โอกาสแก่โฮสต์ในการควบคุมเมื่อ URL ใหม่กำลังจะถูกโหลดใน WebView ปัจจุบัน URL
การแปล: เมื่อ URL ใหม่คือการโหลด WebView ปัจจุบันวิธีนี้จะเปิดโอกาสให้แอปพลิเคชันสามารถควบคุมการประมวลผลของ URL ได้ หาก WebView ไม่มี setWebViewClient การดำเนินการเริ่มต้นคือ WebView จะขอให้ Activity Manager รับ URL การประมวลผลตัวจัดการที่เหมาะสม หาก WebView ตั้งค่า SetWebViewClient ให้ส่งคืนจริงแสดงถึงแอปพลิเคชันปัจจุบันเพื่อประมวลผล URL และส่งคืน FALSE เพื่อแสดง webView ปัจจุบันเพื่อจัดการ URL หากคำขอ HTTP เป็นวิธีการโพสต์วิธีการจะไม่ถูกเรียก
ตัวอย่างรหัส:
/*** URL ทั้งหมดเรียกเบราว์เซอร์ระบบที่เริ่มต้นด้วย www.example.com เพื่อเปิด URL อื่น ๆ ใน WebView ปัจจุบัน {// เรียกระบบโดยเริ่มต้นการประมวลผล URL View.Stoploading ();
2. ShouleoverRideKeyEvent (WebView View, KeyEvent Event)
หมายเหตุอย่างเป็นทางการ: ให้การเปลี่ยนแปลงแอปพลิเคชันโฮสต์เพื่อจัดการคีย์คีย์คีย์เหตุการณ์แบบซิงโครนัส เหตุการณ์สำคัญ
การแปล: ให้โอกาสในการจัดการกับเหตุการณ์สำคัญในปัจจุบันแบบอะซิงโครนัส การกลับมาจริง WebView จะไม่จัดการกับเหตุการณ์คีย์, ส่งคืน FALSE, WebView จะประมวลผลเหตุการณ์คีย์ ผลตอบแทนเริ่มต้นเป็นเท็จ
3. OnPageStarted (มุมมอง WebView, String url, Bitmap Favicon) และ OnPageFinished (WebView View, String URL)
หมายเหตุอย่างเป็นทางการ: แจ้งแอปพลิเคชันโฮสต์ว่าหน้าเริ่มโหลดแล้ว ของการเปลี่ยนแปลงเฟรมแบบฝังคือการตัดลิงค์ที่มีเป้าหมายคือ iframe
การแปล: มันถูกเรียกเมื่อหน้าเริ่มโหลด อย่างไรก็ตามเมื่อหน้าซ้อนกัน (เช่นลิงก์กระโดดใน iframe) วิธีนี้จะไม่ถูกเรียก (นี่เป็นกรณีวันนี้คุณสามารถควบคุม URL กระโดดได้โดยการโหลด OnLoadResource อีกครั้ง)
หมายเหตุอย่างเป็นทางการ: แจ้งแอปพลิเคชันโฮสต์ว่าการโหลดหน้าเว็บเสร็จสิ้นแล้ว
การแปล: มันถูกเรียกเมื่อสิ้นสุดการโหลดหน้าเว็บ
ตัวอย่างรหัส:
// รับเวลาโหลดหน้าเว็บ
การเริ่มต้นใช้งานจริง , "ใช้เวลาคือ:" + ใช้จ่ายเวลา, toast.length_short) .show ();}} @Override โมฆะสาธารณะ onpagestarted (มุมมอง WebView, url สตริง, bitmap favicon) {startti me = system.currenttimeMillis ();};};};};};};};};};
4. OnLinERSORCE (มุมมอง WebView, String url)
หมายเหตุอย่างเป็นทางการ: แจ้งแอปพลิเคชันโฮสต์ว่า WebView จะโหลดทรัพยากรที่ระบุโดย URL ที่กำหนด
การแปล: แจ้งแอปพลิเคชัน WebView ให้โหลดทรัพยากร URL ที่ระบุแต่ละทรัพยากร (เช่นรูปภาพ, URL ที่ซ้อนกัน, JS, ไฟล์ CSS) (คุณสามารถจัดการ URL ที่ซ้อนกันของ iframe ผ่านวิธีนี้)
ตัวอย่างรหัส:
@Override โมฆะสาธารณะ ondresource (มุมมอง WebView, url string) {ถ้า (url.indexof ("http://www.example.com")! = -1 && ดู! = null) .