Android混合开发之混合开发之H5调用系统相机和相册调用系统相机和相册
曾经接触一个项目,需要利用H5显示页面,于是自然而然想到了WebView。又由于Android系统自带的WebView被人吐槽过
多,所以决定使用腾讯封装的X5内核的WebView,使用和方法上和系统的相差不大。
第一步:在布局中使用WebView。
我们设置一个progressbar用来提示加载进度,我想从用户体验上来说还是很必要的。
第二步:WebActivity开始初始化progressbar。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
webview = findViewById(R.id.wv);
initProgressBar();
init();
}
private void initProgressBar() {
mProgressBar = (ProgressBar) findViewById(R.id.progressBar1);
mProgressBar.setMax(100);
mProgressBar.setProgressDrawable(this.getResources().getDrawable(R.drawable.color_progressbar));
}
第三步:初始化WebView。
private void init() {
initWebview("https://...");
}
private void initWebview(String data) {
com.tencent.smtt.sdk.WebSettings webSettings = webview.getSettings();
//加载需要显示的网页
MyWebChromeClient myWebChromeClient = new MyWebChromeClient();
webview.setWebChromeClient(myWebChromeClient);
webview.loadUrl(data);
// webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setUseWideViewPort(true);//关键点
webSettings.setLoadWithOverviewMode(true);
// webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
// webSettings.setDisplayZoomControls(false);
webSettings.setJavaScriptEnabled(true); // 设置支持javascript脚本
webSettings.setAllowFileAccess(true); // 允许访问文件
webSettings.setBuiltInZoomControls(true); // 设置显示缩放按钮
webSettings.setSupportZoom(true); // 支持缩放
webSettings.setDomStorageEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setLoadsImagesAutomatically(true);
// webview.setScrollBarStyle(0);
webview.setWebViewClient(new com.tencent.smtt.sdk.WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
// 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
view.loadUrl(url);
return true;
}
});
}
public class MyWebChromeClient extends com.tencent.smtt.sdk.WebChromeClient {