Skip to content

Commit

Permalink
#update webview
Browse files Browse the repository at this point in the history
  • Loading branch information
wumeng1 authored and wumeng1 committed Jun 29, 2021
1 parent 858045e commit 73f131e
Showing 1 changed file with 44 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
* 1.支持X5
* 2.支持JsBridge
*/
public class CommonWebActivity extends BaseMVMActivity {
public class CommonWebActivity extends BaseMVMActivity {
public static final String KEY_TITLE = "title";
public static final String KEY_URL = "url";

Expand All @@ -42,11 +42,11 @@ public static void start(Context context, String title, String url) {
context.startActivity(starter);
}

private Toolbar mToolbar;
protected Toolbar mToolbar;
protected CommonWebView mWebView;
private ProgressBar mProgressBar;
private IWebViewCallBack mWebViewCallBack;
private DefaultWebViewFileChooser mFileChooser;
protected ProgressBar mProgressBar;
protected IWebViewCallBack mWebViewCallBack;
protected DefaultWebViewFileChooser mFileChooser;

@Override
protected BaseMediator initMediator() {
Expand All @@ -65,26 +65,28 @@ protected void initialize() {
String title = getIntent().getStringExtra(KEY_TITLE);
String url = getIntent().getStringExtra(KEY_URL);

mToolbar = findViewById(R.id.mToolbar);
mProgressBar = findViewById(R.id.mProgressBar);
mWebView = findViewById(R.id.mWebView);
getLifecycle().addObserver(mWebView);
initView();

WebConfig webConfig = getWebConfig();
mWebViewCallBack = webConfig.getWebViewCallBack();


mProgressBar.setVisibility(webConfig.isShowProgress() ? View.VISIBLE : View.GONE);
mToolbar.setVisibility(webConfig.isShowToolbar() ? View.VISIBLE : View.GONE);
mToolbar.setShowBackIcon(webConfig.isShowBack());
mToolbar.setTitle(title);

configWebSettings(webConfig);
mWebView.clearHistory();
mWebView.loadUrl(url);
loadUrl(url);
}

protected void initView() {
mToolbar = findViewById(R.id.mToolbar);
mProgressBar = findViewById(R.id.mProgressBar);
mWebView = findViewById(R.id.mWebView);
getLifecycle().addObserver(mWebView);
}


protected void configWebSettings(WebConfig webConfig) {
mWebViewCallBack = webConfig.getWebViewCallBack();
WebSettingUtil.toSetting(mWebView, webConfig.getUserAgent());
mWebView.setHeaders(webConfig.getHeaders());
mWebView.setWebViewClient(new BaseWebViewClient(mWebView, mWebViewCallBack));
Expand All @@ -93,6 +95,13 @@ protected void configWebSettings(WebConfig webConfig) {
mWebView.setWebChromeClient(new BaseWebChromeClient(mFileChooser, mProgressBar));
}

protected void loadUrl(String url) {
mWebView.loadUrl(url);
}

protected void clearHistory() {
mWebView.clearHistory();
}

protected WebConfig getWebConfig() {
return new WebConfig()
Expand Down Expand Up @@ -130,28 +139,47 @@ public <T> T jsCallAndroid(String action, Object content, Class<T> t) {
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
handleWebResult(requestCode, resultCode, data);
}

private void handleWebResult(int requestCode, int resultCode, Intent data) {
if (mFileChooser != null) {
mFileChooser.onActivityResult(mWebView, requestCode, resultCode, data);
}
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (handleWebBack(keyCode, event)) {
return true;
}

return super.onKeyDown(keyCode, event);
}

/**
* 处理返回键
*
* @param keyCode
* @param event
* @return
*/
protected boolean handleWebBack(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mWebView != null && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
}
return super.onKeyDown(keyCode, event);
return false;
}

/**
* 方式2:加载html文本
*
* @param content
*/
void loadHtmlText(String content) {
protected void loadHtmlText(String content) {
WebSettings webSettings = mWebView.getSettings();
//设置自适应屏幕,两者合用
webSettings.setUseWideViewPort(false); //将图片调整到适合webview的大小
Expand Down

0 comments on commit 73f131e

Please sign in to comment.