การแก้ปัญหาการเชื่อมโยง JS ไดนามิก Android 4+ บน PhoneGap 1.4.1

ฉันประสบปัญหาที่พบบ่อยในการเข้าถึงไฟล์ JS ด้วย PhoneGap บน Android 4.0 ขึ้นไป นี่เป็นข้อผิดพลาด webview ที่น่ารังเกียจซึ่งส่งผลต่อแอป PhoneGap อย่างร้ายแรง หากฉันพยายามโหลดสคริปต์แบบไดนามิก เช่น

$('head').append('<script type="text/javascript" charset="utf-8" src="app/android.js"></script>');

Android 4.0+ จะทำงานบน 404 หรือที่รู้จักในชื่อ "ข้อผิดพลาดของโครเมียม -6" ซึ่งไม่สามารถแก้ไข URL ได้ สิ่งนี้มีผลกระทบร้ายแรงต่อคำขอ XHR ปัญหาระบุไว้ในกระทู้นี้ และผู้ใช้ใจดีได้โพสต์แพตช์สำหรับ PhoneGap 1.7:

http://code.google.com/p/android/issues/detail?id=17535

ฉันได้ลองใช้แพทช์นี้แล้วและใช้งานได้ สิ่งที่ฉันสงสัยคือว่า PhoneGap 1.4.1 สามารถทำอะไรได้บ้าง การอัปเกรดเวอร์ชันที่ใช้งานจริงของฉันเป็น 1.7 ณ จุดนี้ไม่ใช่วิธีแก้ปัญหาที่ใช้งานได้ และฉันคิดว่าคนอื่นๆ ก็มีจุดยืนที่คล้ายกับข้อบกพร่องหลักของ Android นี้ เป็นที่น่าสังเกตว่าแม้แต่ PhoneGap 1.8.1 ก็ยังไม่ได้รวมแพตช์ด้านบนเข้าด้วยกัน

มีใครสามารถแก้ไขปัญหานี้สำหรับ PhoneGap 1.4.1 ได้บ้าง


person jddh    schedule 20.06.2012    source แหล่งที่มา


คำตอบ (1)


ฉันมีปัญหาที่คล้ายกันในการโหลด js แบบไดนามิกใน ICS และแก้ไขได้ด้านล่าง:

  1. อ่านเนื้อหาไฟล์ JS โดยใช้โค้ด java และ java ส่งคืนเนื้อหาของไฟล์ js เป็นสตริง
  2. ใน js รับข้อมูลจากโค้ด Java และโค้ดที่ดำเนินการทั่วโลกโดยใช้ globalEval
person rpelluru    schedule 11.09.2012