package com.zy.tour.usercenter;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.JavascriptInterface;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.zy.tour.BaseActivity;
import com.zy.tour.R;
import com.zy.tour.usercenter.personalcenter.PersonalCenterActivity;
import com.zy.tour.usercenter.utils.ContantsUtils;
import com.zy.tour.usercenter.utils.SaveData;
import com.zy.tour.util.app.LApplication;
import com.zy.tour.util.ui.TitleLayout;
@SuppressLint({ "SetJavaScriptEnabled", "JavascriptInterface" })
public class WapLoginActivity extends BaseActivity implements ContantsUtils,
OnClickListener {
private WebView webView;// 内容页
private TitleLayout titleLayout;// 顶部栏
private Activity mContext;
private LinearLayout waitLayout;// 等待Layout
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_wap_login);
mContext = this;
titleLayout = (TitleLayout) findViewById(R.id.top);
webView = (WebView) findViewById(R.id.webview123);
waitLayout = (LinearLayout) findViewById(R.id.linearlayout_progressbar_wait);
titleLayout.getTitleTextView().setText("用户");
titleLayout.getRightImageView().setVisibility(View.VISIBLE);
titleLayout.getRightImageView().setImageResource(R.drawable.refresh);
titleLayout.getRightImageView().setOnClickListener(this);
webView.getSettings().setJavaScriptEnabled(true);// 可以使用javaScriptEnalsed
webView.getSettings().setCacheMode(2);// 不使用缓存
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.addJavascriptInterface(new JsObject(), "demo");
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {// 打电话
Intent intent = new Intent(Intent.ACTION_CALL, Uri
.parse(url));
mContext.startActivity(intent);
} else if (url.startsWith("sms:")) {// 发短息
Uri uri = Uri.parse("smsto:" + url.split(":")[1]);
Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri);
sendIntent.putExtra("sms_body", "");
mContext.startActivity(sendIntent);
} else {// 正常处理url
view.loadUrl(url);
}
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
waitLayout.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
waitLayout.setVisibility(View.GONE);
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
waitLayout.setVisibility(View.GONE);
super.onReceivedError(view, errorCode, description, failingUrl);
Toast.makeText(mContext, description + "\n" + failingUrl,
Toast.LENGTH_LONG).show();
}
});
webView.setWebChromeClient(new MyWebChromeClient());// 设置浏览器可弹窗
webView.loadUrl("url");
}
/**
* 浏览器可弹窗
*
* @author Administrator
*
*/
final class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsConfirm(WebView view, Str
Adnroid WebView使用,js交互与弹窗设置
在Android中,当WebView加载页面并点击按钮尝试弹出确认对话框时,有时对话框无法显示。解决这个问题的方法包括重载WebChromeClient的onJsConfirm方法,通过创建自定义对话框来处理确认操作;或者重写onCreateWindow方法,允许WebView打开新的窗口。记得启用JavaScript支持以确保正常交互。
摘要由CSDN通过智能技术生成