制作好APP在真机上运行时发现页面总是略大于屏幕,查询网上的解决方法,通过Android原生webview设置分辨率啦、缩放啦、自适应等等,没啥用。后来看到X5WebView很多人赞,行吧,我也试试看好了。
走攻略下载X5WebView项目,主要从demo项目中复制下图对应文件夹下的文件到我的项目中来。
在gradle.properties中加入代码
android.useDeprecatedNdk=true
在build.gradle中defaultConfig {}块中写入代码
ndk{abiFilters "armeabi", "armeabi-v7a", "x86", "mips"}
然后呢,写一个类来使用X5WebView,在这里就要写好WebView导入了,不然会和Android元素WebView混一起。
我需要做一个内嵌网页的登录和登出,登录成功记住账号和密码,登出的时候登录页不显示注册页而是老用户登录页。
package com.example.com.hello1;
import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Rect;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import com.tencent.smtt.sdk.WebSettings;
import com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm;
import com.tencent.smtt.sdk.WebView;
import com.tencent.smtt.sdk.WebViewClient;
import java.net.URISyntaxException;
public class X5WebView extends WebView {
static boolean isx5Reset = false;
static boolean delay = false;
static String x5url = "";
static boolean IS_NEED_CLAER = false;
private WebViewClient client = new WebViewClient() {
/**
* 防止加载网页时调起系统浏览器
*/
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
WebView.HitTestResult hitTestResult = view.getHitTestResult();
//hitTestResult==null解决重定向问题(刷新后不能退出的bug)
if (!TextUtils.isEmpty(url) && hitTestResult == null) {
return true;
}
if (shouldOverrideUrlLoadingByApp(view, url