1. 程式人生 > >Android與Cesium開發實現網頁內嵌

Android與Cesium開發實現網頁內嵌

這是我的第一篇部落格,記錄今天開發的時候解決的一個小問題。

朋友利用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。。。。。。