Я использую замену webview на просмотр списка.теперь я могу получить html первой страницы по webview, когда страница больше, чем одна страница, мне нужно отобразить «next page» внизу webview, я использую javascript для обработки этого следующим образом:
<div id="nextpagebox"></div>
<div id="nextpagebtnbox" style="display:none;">
<p id="nextpagebtn" class="nextpagebtn_untouch"ontouchstart="javascript:this.className='nextpagebtn_touch';"ontouchend="javascript:this.className='nextpagebtn_untouch'"onclick="jsinterface.nextPage();">next page</p><p id="nextpagebtn_isrunning" class="nextpagebtn_untouch" style="display:none;">loading...</p></div><script>type="text/javascript">jsinterface.interfaceNextPage();</script>
метод interfaceNextPage () в классе JsInterface имеет вид:
public void interfaceNextPage() {
Log.i(TAG, "interfaceNextPageBtnReload");
if ((dataParser != null) && (dataParser.getReplies() != null))
{
String str;
if (!"".equals(dataParser.getReplies()))
str = dataParser.getReplies();
else
str = "0";
if ((int)Math.ceil(Integer.parseInt(str) / ppp_default_page) <= page)
webView.loadUrl("javascript:document.getElementById(\"nextpagebtnbox\").style.display='none';");
else
webView.loadUrl("javascript:document.getElementById(\"nextpagebtnbox\").style.display='block';");
}
}
затем я предварительно устанавливаю webView в onCreage ().
webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
JsInterface jsInterface = new JsInterface();
webView.addJavascriptInterface(jsInterface, "jsinterface");
webView.setWebChromeClient(new MyWebChromeClient());
последнее, я запускаю его, "Следующая страница "не отображается, и из журнала я получил некоторые ошибки:
E/Web Console(24731): Uncaught SyntaxError: Unexpected token if at about:blank:278
E/Web Console(24731): Uncaught SyntaxError: Unexpected token if at about:blank:291
E/Web Console(24731): Uncaught SyntaxError: Unexpected token if at about:blank:326
E/Web Console(24731): Uncaught SyntaxError: Unexpected token if at about:blank:339
E/Web Console(24731): Uncaught SyntaxError: Unexpected token if at about:blank:374
E/Web Console(24731): Uncaught SyntaxError: Unexpected token if at about:blank:387
E/Web Console(24731): Uncaught SyntaxError: Unexpected token if at about:blank:422
E/Web Console(24731): Uncaught SyntaxError: Unexpected token if at about:blank:435
E/Web Console(24731): Uncaught TypeError: Object
com.bbk.forumclient.activity.PostListActivity$JsInterface@4054b358 has no method'interfaceNextPage' at about:blank:
пожалуйста, обратите внимание: когда я комментирую код" webView.setWebChromeClient (new MyWebChromeClient ());»здесь нет никаких проблем, и interfaceNextPage () тоже не вызывается, это так странно.и я пишу этот код этим методом, из журнала, метод javascript может вызывать код Java. Вопрос в следующем: что не так с моим методом отображения «следующей страницы».спасибо.