-
概述:
實現android加載html資源,html中通過js實現socket通訊,將後臺發送的文本在頁面滾動顯示並轉換爲語音播報。
-
實現:
1.通過webview加載html資源
webView.loadUrl("file:///android_asset/index.html");
1.1.頁面文字滾動使用marquee跑馬燈(效果最理想)
1.2.文本的語音轉換使用百度的語音轉換接口,要求資源一直在線
2.activity調用html中的js函數以實現數據傳遞(若不需要傳遞數據則可直接加載html)
2.1.java對js函數的調用使用webView.loadUrl("javascript:函數名()");,若直接寫在onCreate中則無法調用,因爲 webView.loadUrl是異步加載方法,若直接在onCreate中通過此方法調用js,實際執行時頁面資源(h5)尚未加載完成,必然出現調用無效,而通過按鈕點擊事件進行調用時,頁面已完成加載,自然可用正常調用。如果不想使用事件觸發的方式進行調用,也可在webView.setWebViewClient傳入webViewClient對象時,在重寫的onPageFinished方法中進行調用。
參考:https://blog.csdn.net/blue_zy/article/details/80316488
3.java調用帶參數的js函數時,參數須以單引號包裹,格式爲:
webView.loadUrl("javascript:函數名('"+參數+"')");