Files
assistant-android/app/src/main/java/com/gh/gamecenter/WebActivity.java

181 lines
6.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.gh.gamecenter;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.DownloadListener;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gh.base.BaseActivity;
import com.gh.common.util.DisplayUtils;
import com.gh.gamecenter.entity.CommentnumEntity;
import com.gh.gamecenter.retrofit.RetrofitManager;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
/**
* Created by khy on 2016/10/18.
*/
public class WebActivity extends BaseActivity {
@BindView(R.id.news_webview) WebView webView;
@BindView(R.id.web_progressbar) ProgressBar progressBar;
@BindView(R.id.web_comment) TextView webComment;
@BindView(R.id.news_bottom) RelativeLayout newsBottom;
@BindView(R.id.actionbar_tv_title) TextView newsTitle;
private String newsId;
private int commentNum;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String webUrl;
String webTitle;
if (getIntent().getBundleExtra("data") != null) {
Bundle data = getIntent().getBundleExtra("data");
webUrl = data.getString("url");
webTitle = "";
} else {
webUrl = getIntent().getStringExtra("url");
webTitle = getIntent().getStringExtra("gameName");
newsId = getIntent().getStringExtra("newsId");
}
// webUrl = "http://tieba.baidu.com/f?kw=%E7%BD%91%E6%98%93%E9%98%B4%E9%98%B3%E5%B8%88&red_tag=3194925450";
View contentView = View.inflate(this, R.layout.activity_web, null);
init(contentView, webTitle);
ButterKnife.bind(this);
webView.loadUrl(webUrl);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSupportZoom(true);
//用webview打开url
webView.setWebViewClient(new WebViewClient(){
// @Override
// public boolean shouldOverrideUrlLoading(WebView view, String url) {
// view.loadUrl(url);
// return true;
// }
// @Override
// public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
// 广告拦截操作
// if (!url.contains(xxxx)) {
// return new WebResourceResponse(null, null, null);
// }
// return null;
// }
});
// 页面里的下载跳转到自带浏览器
webView.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});
//设置加载进度条
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
if (TextUtils.isEmpty(newsId)) {
newsTitle.setEllipsize(TextUtils.TruncateAt.END);
newsTitle.setPadding(DisplayUtils.dip2px(getApplication(), 30), 0,DisplayUtils.dip2px(getApplication(), 30), 0);
newsTitle.setSingleLine();
newsTitle.setText(title);
}
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
progressBar.setProgress(newProgress);
if (newProgress == 100 && newsId != null){
progressBar.setVisibility(View.GONE);
if (newsBottom.getVisibility() == View.GONE) {
newsBottom.setVisibility(View.VISIBLE);
}
} else {
if (progressBar.getVisibility() == View.GONE) {
progressBar.setVisibility(View.VISIBLE);
}
}
}
});
if (newsId != null) {
getNewsCommentNum();
}
}
@OnClick(R.id.web_comment)
public void OnCommentClickListener() {
Intent intent = new Intent(this, MessageDetailActivity.class);
intent.putExtra("newsId", newsId);
intent.putExtra("commentNum", commentNum);
startActivityForResult(intent, 1001);
}
public void getNewsCommentNum() {
RetrofitManager.getComment()
.getNewsCommentnum(newsId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new com.gh.gamecenter.retrofit.Response<List<CommentnumEntity>>(){
@Override
public void onNext(List<CommentnumEntity> response) {
super.onNext(response);
if (response.size() > 0 && response.get(0).getNum() > 0) {
commentNum = response.get(0).getNum();
webComment.setText("查看评论 " + response.get(0).getNum() + "");
}
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();// 返回前一个页面
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 刷新评论数
if (resultCode == 1001 && progressBar.getVisibility() == View.VISIBLE && newsId != null) {
webComment.setText("查看评论 " + data.getExtras().getInt("commentNum") + "");
}
}
}