package com.taobao.tmts.framework.app; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.ProgressBar; import android.widget.Toast; public class WebViewActivity extends Activity { private static final String TAG = "WebViewActivity"; private WebView webview; private ProgressBar progressBar; private Button button; private static String jsResult; private static final String URL = "http://www.taobao.com/"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_PROGRESS); this.requestWindowFeature(Window.FEATURE_NO_TITLE); Log.d("sysout", "thread-->" + Thread.currentThread().getId()); Log.d("sysout", "activity-->" + Thread.currentThread().getName()); setContentView(R.layout.webview_extend_layout); initWebView(); final Activity activity = this; webview.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { // Activities and WebViews measure progress with different // scales. // The progress meter will automatically disappear when we reach // 100% activity.setProgress(progress * 1000); } }); webview.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_LONG).show(); } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub // webview.loadUrl("javascript:document.all.aftertest.style.color = 'red'"); // webview.loadUrl("javascript:window.webdriver.showToast('<head>'+document.getElementById(\"txtMultiLine1\").value+'</head>');"); // webview.loadUrl("javascript:window.webdriver.resultAvailable('<head>'+document+'</head>');"); // String string = interface1.getResult(); // Log.d("Mywebview", "yes:" + string); // String script = // Uri.encode("<script>var d=document.getElementById(\"link_id\");d.innerHTML;</script>"); // String script = // "<script>var d=document.getElementById(\"link_id\");d.innerHTML;</script>" // ; // webview.loadUrl("javascript:function b(){var a=document.getElementById('link_id');return a.innerHTML};"); // webview.loadUrl("javascript:window.nativeApp.back(b())"); progressBar.setVisibility(View.GONE); button.setVisibility(View.VISIBLE); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return super.shouldOverrideUrlLoading(view, url); } }); // webview.loadUrl("file:///sdcard/android_webview_html/item_detail-0db2-null.jhtml.htm"); // webview.loadUrl("file:///sdcard/android_webview_html/textfields1.html"); // webview.loadUrl("file:///sdcard/android_webview_html/link1.html"); webview.loadUrl(URL); webview.clearCache(true); // webview.set // JavascriptExecutor executor = new JavascriptExecutor(); // final JavascriptInterface interface1 = new // JavascriptInterface(this,executor); // // webview.addJavascriptInterface(interface1, "GoBackAction"); } private void initWebView() { View parentView = findViewById(R.id.webview_extend); progressBar = (ProgressBar) parentView.findViewById(R.id.my_progressbar); button = (Button) findViewById(R.id.webview_button); button.setVisibility(View.GONE); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(WebViewActivity.this, WebViewActivity2.class); startActivity(intent); } }); webview = (WebView) parentView.findViewById(R.id.mywebview); webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setBuiltInZoomControls(true); webview.addJavascriptInterface(this, "nativeApp"); } public void back(String result) { Toast.makeText(this, result, 1000); Log.d("TmtsActivity", result + "---native"); } }