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>(){ @Override public void onNext(List 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") + ")"); } } }