JavaScript не работает в Android 3.0 - PullRequest
       31

JavaScript не работает в Android 3.0

3 голосов
/ 15 декабря 2011

Я нашел образец приложения по следующей ссылке

http://code.google.com/p/chaek/

Приложение представляет собой epub reader, библиотеку моноклей, в которую загружается книга и которую она использует для изменения на каждой странице. Основная часть приложения основана на коде java-скрипта.

Когда я запускаю код на мобильных телефонах Android, он работает нормально, электронная книга загружается и я могу изменить ее по страницам, когда я пробую приложение на своем планшете Samsung с Android 3.1, книга загружается, но не в состоянии изменить его по страницам, чтобы изменить его в главе.

Когда я пытался напечатать ошибку журнала, я получаю следующую строку только с моего планшета

[METHOD] void openChapter(chapNo:1)
[CALLBACK_WV] void onPageStarted(view:android.webkit.WebView@40d32f58, url:file:///mnt/sdcard/gisbook/.9789026324710/OEBPS/html/, favicon:null)
[CALLBACK_WV] void onPageFinished(view:android.webkit.WebView@40d32f58, url:file:///mnt/sdcard/gisbook/.9789026324710/OEBPS/html/)
javascript:getTotalPageNum()
javascript:openPageByPercentage(0.0)
Uncaught ReferenceError: getTotalPageNum is not defined at null:1
Uncaught ReferenceError: openPageByPercentage is not defined at null:1

В то время как в мобильных телефонах Android эти строки выглядят следующим образом:

 [CALLBACK_WV] void onPageStarted(view:android.webkit.WebView@44f4a130, url:file:///sdcard/.9789026324710/OEBPS/html/, favicon:null)
 [CALLBACK_WV] void onPageFinished(view:android.webkit.WebView@44f4a130, url:file:///sdcard/.9789026324710/OEBPS/html/)
 javascript:getTotalPageNum()
 javascript:openPageByPercentage(0.0)
 [BRIDGE] void setTotalPageNum(page:1)
 [METHOD] void selectBookmark()

Почему такая разница между мобильными телефонами и планшетами под управлением Android, является ли проблема с веб-обзором в планшетах под управлением Android версии 3.0 и выше? 1016 *

Я поделился этой проблемой с ее автором кода, он также не может понять это.

Когда я гуглил по этому поводу, я сталкивался с множеством программистов, которые говорили о проблемах с java-скриптом, работающим над webview. Я опробовал большинство их ответов, но безрезультатно.

Может кто-нибудь объяснить мне или выяснить, почему такая ошибка ... пожалуйста

Ответы [ 2 ]

3 голосов
/ 02 марта 2012

Я получил точно такую ​​же ошибку, и она появляется только на Honeycomb и Ice Cream Sandwich. На Gingerbread работает нормально.

То, как я обошел это, было использовать "<script src=...></script>" вместо "<script src=.../>". Я бы никогда не подумал, что это будет иметь значение, но это так. Кажется, это ошибка WebKit.

1 голос
/ 15 ноября 2012

scriptElement.setAttribute ("src", "url ('file: /// android_asset /" + path + "')");

необходимо заменить следующим:

scriptElement.setAttribute ("src", "file: /// android_asset /" + path);

...