在做webview的时候,加了个商城的地址,里面有位置支付功能,
//启用支持javascript
WebSettings webSettings = wv_promotion.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setUseWideViewPort(true);//关键点
webSettings.setDisplayZoomControls(false);
webSettings.setAllowFileAccess(true); // 允许访问文件
webSettings.setBuiltInZoomControls(true); // 设置显示缩放按钮
webSettings.setSupportZoom(true); // 支持缩放
webSettings.setLoadWithOverviewMode(true);
webSettings.setAppCacheEnabled(true);//启用localstorage本地存储api
webSettings.setLightTouchEnabled(true);//启用选中功能
webSettings.setDomStorageEnabled(true);//启用dom存储(关键就是这句),貌似网上twitter显示有问题也是这个属性没有设置的原因
webSettings.setDatabaseEnabled(true);//启用html5数据库功能
webSettings.setTextSize(WebSettings.TextSize.NORMAL);//通过设置WebSettings,改变HTML中文字的大小 (使用后字体变大)
wv_promotion.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if(!isLoadUrl){
isLoadUrl = true;
view.loadUrl(url);
}
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
// 如下方案可在非微信内部WebView的H5页面中调出微信支付 7.0适配
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (request.getUrl().toString().startsWith("weixin://wap/pay?")) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(request.getUrl().toString()));
startActivity(intent);
makeShortText("打开微信");
return true;
}
}
return super.shouldOverrideUrlLoading(view,request);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 如下方案可在非微信内部WebView的H5页面中调出微信支付
if (url.startsWith("weixin://wap/pay?")) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// super.onReceivedSslError(view, handler, error);//注意一定要去除onReceivedSslError方法的super.onReceivedSslError(view, handler, error);,否则设置无效。
handler.proceed();
}
});