package com.metis.base.activity; import android.content.DialogInterface; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.text.TextUtils; import android.view.View; import android.webkit.JsResult; import android.webkit.ValueCallback; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import com.metis.base.ActivityDispatcher; import com.metis.base.R; import com.metis.base.utils.Log; import com.metis.base.utils.PatternUtils; import im.delight.android.webview.AdvancedWebView; public class BrowserActivity extends TitleBarActivity { private static final String TAG = BrowserActivity.class.getSimpleName(); private WebChromeClient mChromeClient = null; private AdvancedWebView mBrowserWv = null; private String mUrl = null; private String mTitle = null; private boolean canGoOut = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_browser); mBrowserWv = (AdvancedWebView)findViewById(R.id.browser_web_view); /*mBrowserWv.setListener(this, new AdvancedWebView.Listener() { @Override public void onPageStarted(String s, Bitmap bitmap) { } @Override public void onPageFinished(String s) { } @Override public void onPageError(int i, String s, String s1) { } @Override public void onDownloadRequested(String s, String s1, String s2, String s3, long l) { } @Override public void onExternalPageRequest(String s) { } });*/ mChromeClient = new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); getTitleBar().setTitleCenter(title); mTitle = title; } @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { Log.v(TAG, "chromeClient onJsAlert"); return super.onJsAlert(view, url, message, result); } @Override public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) { Toast.makeText(BrowserActivity.this, "onShowFileChooser", Toast.LENGTH_SHORT).show(); Log.v(TAG, "chromeClient onShowFileChooser "); return super.onShowFileChooser(webView, filePathCallback, fileChooserParams); } public void openFileChooser(ValueCallback<Uri> uploadMsg, String AcceptType, String capture) { this.openFileChooser(uploadMsg); Log.v(TAG, "openFileChooser"); } @SuppressWarnings("unused") public void openFileChooser(ValueCallback<Uri> uploadMsg, String AcceptType) { this.openFileChooser(uploadMsg); Log.v(TAG, "openFileChooser"); } public void openFileChooser(ValueCallback<Uri> uploadMsg) { Log.v(TAG, "openFileChooser"); } }; mBrowserWv.setWebChromeClient(mChromeClient); mBrowserWv.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); mUrl = url; } }); WebSettings settings = mBrowserWv.getSettings(); settings.setJavaScriptEnabled(true); canGoOut = getIntent().getBooleanExtra(ActivityDispatcher.KEY_CAN_GO_OUT, false); mUrl = getIntent().getStringExtra(ActivityDispatcher.KEY_URL); mBrowserWv.loadUrl(mUrl); getTitleBar().setOnLeftBtnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); if (canGoOut) { getTitleBar().setDrawableResourceRight(R.drawable.ic_dots_horizontal); getTitleBar().setTitleCenter(mUrl); getTitleBar().setOnRightBtnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showDialog(); //ActivityDispatcher.outBrowserActivity(BrowserActivity.this, mUrl); } }); } } @Override public void onBackPressed() { if (mBrowserWv.canGoBack()) { mBrowserWv.goBack(); return; } super.onBackPressed(); } @Override public boolean showAsUpEnable() { return true; } @Override protected void onDestroy() { super.onDestroy(); mBrowserWv.destroy(); } private void showDialog () { String[] titles = null; if (canGoOut) { titles = new String[] {getString(R.string.text_share)/*, getString(R.string.text_open_in_out_browser)*/}; }/* else { titles = new String[] {getString(R.string.text_share), getString(R.string.text_open_in_out_browser)}; }*/ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setItems(titles, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (!TextUtils.isEmpty(mTitle)) { ActivityDispatcher.shareActivity(BrowserActivity.this, mTitle, mTitle, "http://www.meishuquan.net/img/logo2.png", PatternUtils.deleteUidInfosInUrl(mUrl)); } } }); builder.create().show(); } }