[問題] android function取得js的return value

看板AndroidDev作者 (-.-)時間8年前 (2015/12/22 17:21), 8年前編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
是這樣的... in js : function get_value(){ return "test value"; } android class: 把javascript fuction所return的東西直接拿來使用 請問,是否有辦法如我上面所說的直接拿來用.. 因為看到網路上的教學都是寫: webview.loadUrl("javascript:ge_value()"); 可是我get_value()出來的東西沒有要放在webview~~ 我想要在android class的function自己做處理。。 請問 有什麼辦法可以解決這個問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.82.82 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1450776080.A.ABD.html

12/22 18:40, , 1F
自己加一個Javascript Interface去收return value
12/22 18:40, 1F

12/22 18:48, , 2F
或是雖然不太可能,如果只要支援4.4以上那就用
12/22 18:48, 2F

12/22 18:48, , 3F
evaluateJavascript,就直接有callback參數可以用
12/22 18:48, 3F

12/22 18:50, , 4F
但是不管用哪個Java->JS這段都是非同步的,要同步還要再寫
12/22 18:50, 4F
public final class WebViewClientImpl extends WebViewClient { public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:window.android.Result(get_value())"); } } public static class JsCallBack { @JavascriptInterface public void Result(final String x) { Result = x; } } 我這樣寫可以抓到js return到的value 可以看到log一直出現下面的訊息: Uncaught ReferenceError: get_value is not defined ※ 編輯: gene07 (60.250.82.82), 12/22/2015 18:59:15
文章代碼(AID): #1MUHOGgz (AndroidDev)