package com.smartdot.cgt.activity; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.webkit.JavascriptInterface; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import com.smartdot.cgt.R; import com.smartdot.cgt.util.ApplicationMain; public class JavaPhoneActivity extends Activity { private WebView Wv; final Handler myHandler = new Handler(); String userId=""; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); userId = intent.getStringExtra("userId"); setContentView(R.layout.sq); Wv = (WebView)findViewById(R.id.webView1); WebChromeClient wvcc = new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); } }; WebViewClient webViewClient = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView wv, String url) { if(url == null) return false; try { if(url.startsWith("weixin://") //微信 || url.startsWith("alipays://") //支付宝 || url.startsWith("mailto://") //邮件 || url.startsWith("tel://")//电话 || url.startsWith("dianping://")//大众点评 //其他自定义的scheme ) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; } } catch (Exception e) { //防止crash (如果手机上没有安装处理某个scheme开头的url的APP, 会导致crash) return true;//没有安装该app时,返回true,表示拦截自定义链接,但不跳转,避免弹出上面的错误页面 } //处理http和https开头的url wv.loadUrl(url); return true; } }; Wv.setWebViewClient(webViewClient); // 设置setWebChromeClient对象 Wv.setWebChromeClient(wvcc); // myTextView = (TextView)findViewById(R.id.textView1); final JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface(this); Wv.getSettings().setLightTouchEnabled(true); Wv.getSettings().setJavaScriptEnabled(true); Wv.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction"); String requestUrl = ApplicationMain.getInstance().getCgtConfig().getRequestUrl()+"pwas/Case-phone.action?pdaid="+userId; Wv.loadUrl(requestUrl); // Wv.loadUrl("file:///android_asset/index.html"); } public class JavaScriptInterface { Context mContext; JavaScriptInterface(Context c) { mContext = c; } @JavascriptInterface public void showToast(String webMessage){ // final String msgeToast = webMessage; // myHandler.post(new Runnable() { // @Override // public void run() { // // This gets executed on the UI thread so it can safely modify Views // myTextView.setText(msgeToast); // } // }); // // Toast.makeText(mContext, webMessage, Toast.LENGTH_SHORT).show(); Intent intent = new Intent(JavaPhoneActivity.this, FrmMain.class); intent.putExtra("pageS","pageS"); startActivity(intent); JavaPhoneActivity.this.finish(); } } }