0
我有一個包含jqmath腳本,我從在Android Studio中的外部腳本加載網頁視圖元素太早,函數變量傳遞到腳本是這樣的:OnPageFinished()被調用了的WebView
void UpdateFunc() {
js = "<html><head>"
+ "<link rel='stylesheet' href='file:///android_asset/mathscribe/jqmath-0.4.3.css'>"
+ "<script src='file:///android_asset/mathscribe/jquery-1.4.3.min.js'></script>"
+ "<script src='file:///android_asset/mathscribe/jqmath-etc-0.4.3.min.js'></script>"
+ "</head><body>"
+ "<script>var s = '$$" + functext + "$$';M.parseMath(s);document.write(s);</script> </body>";
webView.loadDataWithBaseURL("", js, "text/html", "UTF-8", "");
}
我需要運行一些功能,我已建議延長使用WebViewClient和運行OnPageFinished(),我的代碼如下(在OnCreate中):
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
code
}
});
的問題,OnPageFinished被前的腳本完成更新稱爲webview。
是否有任何方法可以讓我在腳本完成更新webview後立即運行代碼?或者如何解決OnPageFinished的問題?還要注意,我沒有在函數中傳遞任何變量,因爲我只有一個webview。
在此先感謝。
你能再詳細一點嗎?我如何將腳本鏈接解析爲DOM元素,以及如何將它加載到webview中? –
我對android,webview甚至java都一無所知。我可以告訴你,你的M.parseMath(s)調用是一個無操作(和一個錯誤)。 M.parseMath()應該傳遞一個DOM節點,而不是一個字符串。我不知道你在哪裏設置functext。設置s然後執行document.write(s)是沒有意義的,只需在你的js變量(這實際上是html不是js)中放置「$$」+ functext +「$$」。如果您希望在創建頁面之後創建或更改數學,則只需調用M.parseMath()(例如,以響應用戶輸入。希望這可以幫助。 –
看起來像我們分享共同的東西,我也不知道很多關於android,java或webview;)。我試着拋出M.parsemath,只使用document.write(s),沒有它就可以正常工作。 「functext」只是一個等式(即:5 + 54/5)。每當用戶編輯公式時,這段代碼就會被調用,所以它會更新並顯示到webview中。然而,該函數有時會出現界限,我需要應用調整大小,我目前有一個粗暴的方法做到這一點,但我想要的是找出什麼時候才能完成而不會顯示文物 –