Android與Cesium開發實現網頁內嵌
阿新 • • 發佈:2019-02-08
這是我的第一篇部落格,記錄今天開發的時候解決的一個小問題。
朋友利用Cesium(基於JavaScript)實現了一個三維的城市模型,看起來很好玩兒,所以我就想嵌入到安卓中,從網上找安卓內嵌網頁的方法,方法很簡單,網上的教程很多,此處省略,使用www.baidu.com測試了一下,沒問題,然後把朋友的連結加於是入到url中,於是就出現了問題,頁面無法正常訪問。。。。。。
普通的網頁可以訪問,但是基於Cesium卻不能訪問,於是考慮是不是JS的問題,經過查閱文件知道WebView可以實現與JS的互動,通過getSettings方法可以得到一個WebSettings的物件,呼叫這個WebSettings的setJavaScriptEnabled方法,設定為true,OK,頁面載入成功。
程式程式碼如下:
/**** * 功能:實現WebView顯示三維網頁 */ public class MainActivity extends Activity { private WebView webView=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.init(); } private void init(){ webView=(WebView)findViewById(R.id.webView); //網頁地址 webView.loadUrl("www.baidu.com"); //因為載入的這個網頁由大量的JS檔案構成,因此此處需要設定與JS互動為TRUE,否則不能正常顯示網頁 webView.getSettings().setJavaScriptEnabled(true); //設定網頁可視 webView.setVisibility(View.VISIBLE); } }
程式執行過程中會出現以下兩個錯誤,但是不影響頁面的載入,如果有的童鞋也跟我一樣頁面載入不出來,可以嘗試以下我的解決方案。
01-03 15:20:10.264 29707-29707/com.example.dzjin.myapplication E/chromium: [ERROR:interface_registry.cc(104)] Failed to locate a binder for interface: autofill::mojom::PasswordManagerDriver
01-03 15:20:10.274 29707-29751/com.example.dzjin.myapplication E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
平時多看API。。。。。。