Android实现webSocket

  • 概述:

  实现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:函数名('"+参数+"')");

4.原生webview也可以实现html的socket通讯功能(原以为只有使用了tencent X5内核的webview才行),但语音播报好像不能实现(X5可用)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章