这是我的第一篇博客,记录今天开发的时候解决的一个小问题。
朋友利用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。。。。。。