封装好的BrowserActivity
@Route(path = Constants.RouteUrl.CORE_BROWSER)
public class BrowserActivity extends TitleActivity {
private static final int REQUEST_LOGIN = 1;
@Autowired(name = "url")
public String url;
private JsMenu mJsMenu;
private boolean mShoucang;
private String mArticleId;
private int mArticleType;
public String getUrl() {
url = getIntent().getStringExtra("url");
return url;
}
private static final String WEB_ERROR_URL = "file:///android_asset/webkit/error.html";
private static final String WEB_TITLE = "title";
private static final String WEB_WEBSITE = "url";
private static final String IMAGE_FILE_NAME = "browser.jpg";
private File mCameraFile;
WebView webView;
LinearLayout tipLayout;
RelativeLayout tipIconLayout;
TextView tipDesc;
Button optionBtn;
ProgressBar progressBar;
WebSettings settings;
String mTitleLoading = "加载中...";
String mTitle;
List<WebMenu> mMenuItems;
private JSInterface jsInterface;
private static final int FILECHOOSER_RESULTCODE = 1001;
public static final int LOGIN = 1002;
private ValueCallback<Uri> mUploadMessage;
private ValueCallback<Uri[]> mValueCallback;
private int selectImgMax = 1;//选取图片最大数量
@Override
public void onCreate(Bundle savedInstanceState) {
setNeedLogin(false);
//三星手机硬件加速关闭后导致H5弹出的对话框出现不消失情况
String brand = Build.BRAND;
if ("samsung".equalsIgnoreCase(brand) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}
super.onCreate(savedInstanceState);
setBrowserTitle("");
setContentView(R.layout.base_activity_browser);
mCameraFile = new File(getExternalDir(), IMAGE_FILE_NAME);
tipIconLayout = (RelativeLayout) findViewById(R.id.tip_icon_layout);
tipLayout = (LinearLayout) findViewById(R.id.tip_layout);
waveView = (WaveView) findViewById(R.id.tip_icon);
waveView.setShapeType(WaveView.ShapeType.CIRCLE);
waveView.setWaveColor(
Color.parseColor("#ff9c9c"),
Color.parseColor("#ff5c5c"));
tipDesc = (TextView) findViewById(R.id.tip_desc);
optionBtn = (Button) findViewById(R.id.option_btn);
webView = (WebView) findViewById(R.id.webView);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
jsInterface = new JSInterface(this, webView);
showTipIcon();
initData();
initWebViewSettings();
}
public File getExternalDir() {
File file = FileKit.getStorageDir(this);
return file;
}
private void initData() {
Intent intent = getIntent();
if (intent.hasExtra(WEB_TITLE)) {
mTitle = intent.getStringExtra(WEB_TITLE);
if (!TextUtils.isEmpty(mTitle)) {
setBrowserTitle(mTitle);
} else {
setBrowserTitle(mTitleLoading);
}
}
// url = intent.getStringExtra(WEB_WEBSITE);
// if (TextUtils.isEmpty(url)) {
// url = DEFAULT_URL;
// }
}
// @RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void initWebViewSettings() {
settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setSupportZoom(true);//支持缩放
settings.setBuiltInZoomControls(true);//支持手势缩放
settings.setDisplayZoomControls(false); //是否显示缩放按钮
settings.setSaveFormData(true);
settings.setAllowFileAccess(true);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);
settings.setGeolocationEnabled(true);
settings.setAppCacheEnabled(true);
settings.setAppCachePath(getCacheDir().getPath());
settings.setAppCacheMaxSize(Integer.MAX_VALUE);
settings.setDefaultTextEncodingName("UTF-8");
//屏幕自适应
settings.setUseWideViewPort(true);//设置页面自适应手机屏幕;将图片调整到适合WebView的大小
settings.setLoadWithOverviewMode(true);//自适应屏幕
settings.setSaveFormData(false);
settings.setSavePassword(false);
settings.setBlockNetworkImage(false);//解决图片不显示
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
} else {
settings.setCacheMode(WebSettings.LOAD_DEFAULT);//优先使用缓存
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
settings.setDisplayZoomControls(false);
}
// >= 19(SDK4.4)启动硬件加速,否则启动软件加速
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1 && shouldOpenHardware()) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
settings.setLoadsImagesAutomatically(true);//支持自动加载图片
} else {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
settings.setLoadsImagesAutomatically(false);
}
if (Build.VERSION.SDK_INT > 11) {
webView.removeJavascriptInterface("searchBoxJavaBridge_");
webView.removeJavascriptInterface("accessibility");
webView.removeJavascriptInterface("accessibilityTraversal");
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && AppConfig.DEBUG_MODE) {
webView.setWebContentsDebuggingEnabled(true);
}
//解决加载https图片不显示的问题
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
webView.addJavascriptInterface(jsInterface, JSInterface.INTERFACE_NAME);
webView.setHorizontalFadingEdgeEnabled(false);
webView.setVerticalFadingEdgeEnabled(false);
webView.setHorizontalScrollbarOverlay(true);
webView.setHorizontalScrollBarEnabled(false);
webView.setOverScrollMode(View.OVER_SCROLL_NEVER); // 取消WebView中滚动或拖动到顶部、底部时的阴影
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); // 取消滚动条白边效果
webView.requestFocus();
//不同设备点击WebView输入框键盘的不弹起
webView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
try {
if (webView != null)
webView.requestFocus();
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log4a.i("open URL>>>>>" + url);
if (url.startsWith("mailto:") ||
url.startsWith("tel:") ||
url.startsWith("sms:") ||
url.startsWith("mqqwpa:")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log4a.i("open URL new>>>>>" + getUrl());
return super.shouldOverrideUrlLoading(view, request);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
Log4a.i(url);
}
@Override
public void onPageFinished(WebView view, String url) {
try {
super.onPageFinished(view, url);
webView.setLayerType(View.LAYER_TYPE_NONE, null);
progressBar.setVisibility(View.GONE);
if (!settings.getLoadsImagesAutomatically()) {
settings.setLoadsImagesAutomatically(true);
}
} catch (Exception e) {
Log4a.d(e);
}
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
final SslErrorHandler mHandler;
mHandler = handler;
AlertDialog.Builder builder = new AlertDialog.Builder(BrowserActivity.this);
builder.setMessage("ssl证书验证失败");
builder.setPositiveButton("继续", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mHandler.proceed();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mHandler.cancel();
}
});
builder.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
mHandler.cancel();
dialog.dismiss();
return true;
}
return false;
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
// 把出错的WebView内容清除
view.loadDataWithBaseURL(null, "", "text/html", "UTF-8", null);
// view.setVisibility(View.GONE);
view.loadUrl(WEB_ERROR_URL);
progressBar.setVisibility(View.GONE);
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
view.loadUrl(WEB_ERROR_URL);
progressBar.setVisibility(View.GONE);
}
});
webView.setWebChromeClient(new WebChromeClient() {
// For Android 5.0+
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> valueCallback, FileChooserParams fileChooserParams) {
mValueCallback = valueCallback;
selectImgMax = selectImgMax > 1 ? selectImgMax : 1;
goToPhotos();
return true;
}
// For Android 3.0+
public void openFileChooser(ValueCallback uploadMsg) {
mUploadMessage = uploadMsg;
selectImgMax = 1;
goToPhotos();
}
//3.0--版本
public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
openFileChooser(uploadMsg);
}
// For Android 4.1
public void openFileChooser(ValueCallback uploadMsg, String acceptType, String capture) {
openFileChooser(uploadMsg);
}
private void goToPhotos() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri uriForFile = FileProvider.getUriForFile(BrowserActivity.this, AppConfig.PACKAGE_NAME + ".fileprovider", mCameraFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uriForFile);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
startActivityForResult(Intent.createChooser(intent, "File Chooser"), FILECHOOSER_RESULTCODE);
}
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
super.onGeolocationPermissionsShowPrompt(origin, callback);
//默认处理了,没必要弹出一个框框
callback.invoke(origin, true, false);
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
if (newProgress >= 100) {
progressBar.setVisibility(View.GONE);
} else {
if (progressBar.getVisibility() == View.GONE) {
progressBar.setVisibility(View.VISIBLE);
}
progressBar.setProgress(newProgress);
}
}
@Override
public void onReceivedTitle(WebView view, final String title) {
super.onReceivedTitle(view, title);
if (TextUtils.isEmpty(mTitle)) { //过滤Title显示网页
setBrowserTitle(title);
}
}
});
initCookie();
webView.loadUrl(getUrl(), additionalHttpHeaders());
}
public void setBrowserTitle(String title) {
if (TextUtils.isEmpty(title)) {
setTitle("");
return;
}
if (title.equals("#hide#")) {
setTitle("");
return;
}
if (title.startsWith("http")) {
setTitle("");
return;
}
setTitle(title);
}
private void initCookie() {
CookieSyncManager.createInstance(this);
CookieManager instance = CookieManager.getInstance();
instance.setAcceptCookie(true);
Uri uri = Uri.parse(getUrl());
String host = uri.getHost();
Map<String, String> cookie = WebStore.me().getCookies();
if (!TextUtils.isEmpty(host) && !cookie.isEmpty()) {
for (String key : cookie.keySet()) {
instance.setCookie(host, key + "=" + cookie.get(key));
Log4a.d(String.format("cookie: %s = %s", key, cookie.get(key)));
}
instance.setCookie(host, "path=/");
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
instance.setCookie(host, "width=" + displayMetrics.widthPixels);
instance.setCookie(host, "height=" + displayMetrics.heightPixels);
instance.setCookie(host, "device=android");
instance.setCookie(host, "rrh_version=" + AppConfig.VERSION_NAME);
}
}
private Map<String, String> additionalHttpHeaders() {
Map<String, String> additionalHttpHeaders = new HashMap<>();
String token = CacheService.getInstance().getToken();
if (!TextUtils.isEmpty(token)) {
additionalHttpHeaders.put("Authorization", "Bearer " + token);
additionalHttpHeaders.put("Cache-Control", "no-cache");
additionalHttpHeaders.put("Version", String.valueOf(AppConfig.VERSION_NAME));
}
return additionalHttpHeaders;
}
/**
* 设置菜单
*
* @param menus
*/
public void setMenuItem(@NonNull List<WebMenu> menus) {
if (mMenuItems == null) {
mMenuItems = new ArrayList<>();
}
mMenuItems.clear();
mMenuItems.addAll(menus);
invalidateOptionsMenu();
}
public ProgressBar getProgressBar() {
return progressBar;
}
public WebView getWebView() {
return webView;
}
public void setTipLayoutVisibility(int visibility) {
tipLayout.setVisibility(visibility);
}
// private Drawable mDrawable;
private WaveView waveView;
WaveHelper mWaveHelper;
public void showTipIcon() {
try {
if (mWaveHelper == null)
mWaveHelper = new WaveHelper(waveView);
// if (mDrawable instanceof Animatable) {
// if (!((Animatable) mDrawable).isRunning()) {
// ((Animatable) mDrawable).start();
// }
// }
mWaveHelper.start();
} catch (Exception e) {
e.printStackTrace();
}
setTipIconVisibility(View.VISIBLE);
}
public void hiddTipIcon() {
try {
if (mWaveHelper != null) {
mWaveHelper.cancel();
}
} catch (Exception e) {
e.printStackTrace();
}
setTipIconVisibility(View.GONE);
}
public void setTipIconVisibility(int visibility) {
tipIconLayout.setVisibility(visibility);
}
public void setTipDesc(String text) {
tipDesc.setText(text);
setTipDescVisibility(View.VISIBLE);
}
public void setTipDescVisibility(int visibility) {
tipDesc.setVisibility(visibility);
}
public void setOptionBtn(String text, View.OnClickListener listener) {
optionBtn.setText(text);
optionBtn.setOnClickListener(listener);
setOptionBtnVisibility(View.VISIBLE);
}
public void setOptionBtnVisibility(int visibility) {
optionBtn.setVisibility(visibility);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_LOGIN) {
if (CacheService.getInstance().isLogin()) {
updateShoucangIcon();
}
} else {
ShareHelper.getInstance(this).shareOnActivityResult(requestCode, resultCode, data);
jsInterface.onActivityResult(requestCode, resultCode, data);
if (requestCode == FILECHOOSER_RESULTCODE && null != data) {
}
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
if (mMenuItems == null && mJsMenu == null) return true;
if (mMenuItems != null) {
for (int intent = 0; intent < mMenuItems.size(); intent++) {
final WebMenu item = mMenuItems.get(intent);
final MenuItem subItem = menu.add(0, intent, item.order, item.title);
subItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
}
}
if (mJsMenu != null) {
for (int intent = 0; intent < mJsMenu.navTitles.size(); intent++) {
final JsMenu.NavTitlesBean item = mJsMenu.navTitles.get(intent);
if (item.type == 1) {
//收藏功能
setBrowserTitle("");
MenuInflater menuInflater = getMenuInflater();
if (mShoucang) {
menuInflater.inflate(R.menu.menu_base_star, menu);
} else {
menuInflater.inflate(R.menu.menu_base_unstar, menu);
}
updateShoucangIcon();
} else if (item.type == 2) {
//分享功能
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu_base_share, menu);
}
}
}
return true;
}
/**
* 特殊处理,有收藏功能的文章,获取文章是否被收藏
*/
private void updateShoucangIcon() {
if (CacheService.getInstance().isLogin()) {
for (final JsMenu.NavTitlesBean menuBean : mJsMenu.navTitles) {
if ((menuBean.type == 1) && !TextUtils.isEmpty(menuBean.articleid)) {
mArticleId = menuBean.articleid;
mArticleType = menuBean.articletype;
DataRepository.getInstance().hasUpdateCollect(mArticleType, mArticleId, new Callback<ArticleHasCollection>() {
@Override
public void onResponse(ArticleHasCollection response, boolean fromCache) {
if (mShoucang != response.result) {
mShoucang = response.result;
invalidateOptionsMenu();
}
}
});
break;
}
}
}
}
int tag = 0;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
return true;
} else if (id == R.id.menu_common_share) {
//防止用户点击过快,出现两次分享
if (!ButtonUtils.isFastDoubleClick(R.id.menu_common_share, 2000)) {
String title = "";
String desc = "";
String link = "";
String imgUrl = "";
try {
for (JsMenu.NavTitlesBean menuBean : mJsMenu.navTitles) {
if (menuBean.type == 2 && menuBean.sharedata != null) {
title = menuBean.sharedata.title;
desc = menuBean.sharedata.des;
imgUrl = menuBean.sharedata.img;
link = java.net.URLDecoder.decode(menuBean.sharedata.url, "UTF-8");
}
}
//分享功能
showShare(title, desc, link, imgUrl);
} catch (Exception e) {
showToast("分享暂时不可用");
}
}
} else if (id == R.id.common_shoucang_unclicked || id == R.id.common_shoucang_clicked) {
if (CacheService.getInstance().isLogin()) {
tag = tag == 0 ? 1 : 0;
if (!TextUtils.isEmpty(mArticleId)) {
DataRepository.getInstance().collectSource(mArticleType, mArticleId, new Callback<CollectResult>() {
@Override
public void onResponse(CollectResult response, boolean fromCache) {
if (response.status != CollectResult.ERROR) {
updateShoucangIcon();
}
}
});
}
} else {
RouteDispathActivity.route(this, Constants.RouteUrl.USER_LOGIN, REQUEST_LOGIN);
}
//分享功能
} else {
if (mMenuItems != null && id >= 0 && mMenuItems.size() > id) {
WebMenu webItem = mMenuItems.get(id);
String action = webItem.action;
return true;
}
}
return super.onOptionsItemSelected(item);
}
public void showShare(String title, String desc, String link, String imgUrl) {
ShareHelper.getInstance(this).openShare(link, title, desc, imgUrl, new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onResult(SHARE_MEDIA share_media) {
showToast("分享成功");
}
@Override
public void onError(SHARE_MEDIA share_media, Throwable throwable) {
Log4a.e(throwable.getMessage());
if (throwable != null && throwable.getMessage() != null && throwable.getMessage().contains("没有安装应用")) {
showToast("没有安装相关应用");
} else {
showToast("分享失败了");
}
}
@Override
public void onCancel(SHARE_MEDIA share_media) {
showToast("分享取消");
}
});
}
/**
* 不同版本硬件加速的问题
*
* @return
*/
public static boolean shouldOpenHardware() {
if ("samsung".equalsIgnoreCase(Build.BRAND))
return false;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
return true;
return true;
}
private void destroyWebView() {
if (webView == null)
return;
try {
webView.stopLoading();
webView.clearHistory();
// webView.clearCache(true);
webView.clearFormData();
ViewParent viewParent = webView.getParent();
if (viewParent != null && viewParent instanceof ViewGroup)
((ViewGroup) viewParent).removeView(webView);
webView.removeAllViews();
webView.destroy();
webView = null;
} catch (Exception e) {
Log4a.d(e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
destroyWebView();
try {
CookieManager.getInstance().removeAllCookie();
try {
if (mWaveHelper != null) {
mWaveHelper.cancel();
}
} catch (Exception e) {
e.printStackTrace();
}
if (mMenuItems != null) mMenuItems.clear();
} catch (Exception e) {
Log4a.d(e);
}
}
@Override
public void onBackPressed() {
if (webView == null)
return;
//js交互使用到的
//这是点击左上角的箭头返回 type: 0 一页一页返回 1直接返回到native关闭我所有h5页面 2 返回到指定的url页面 默认0(只有2的时候才判断url,0,1的时候url传空‘’)
if (mBackType == 1) {
finish();
return;
} else if (mBackType == 2) {
if (!TextUtils.isEmpty(mBackUrl)) {
RouteDispathActivity.route(this, mBackUrl);
}
return;
}
if (TextUtils.isEmpty(url) || url.contains("/userVerify/sesame?jump_type=1")) {
finish();
return;
}
WebBackForwardList backForwardList = webView.copyBackForwardList();
if (backForwardList != null && backForwardList.getSize() != 0) {
int currentIndex = backForwardList.getCurrentIndex();
WebHistoryItem historyItem = backForwardList.getItemAtIndex(currentIndex);
if (historyItem != null) {
String backPageUrl = historyItem.getUrl();
if (TextUtils.isEmpty(backPageUrl))
return;
if (backPageUrl.contains("android_asset/webkit/error.html")) {
finish();
return;
}
}
}
if (webView.canGoBack()) {
webView.goBack();
} else {
finish();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
return true;
}
return super.onKeyDown(keyCode, event);
}
private int mBackType = -1;//默认值-1
private String mBackUrl = "";
public void setBackControl(int type, String url) {
mBackType = type;
mBackUrl = url;
}
public void showAreaDialog(final String callid, final JSInterface.IAreaListener iAreaListener) {
final AreaDialog areaDialog = new AreaDialog();
Bundle args = new Bundle();
args.putInt("col", 3);
areaDialog.setArguments(args);
areaDialog.setOnAreaChangedListener(new AreaDialog.OnAreaChangedListener() {
@Override
public void onAreaChanged(String province, String city, String county, int provinceCode, int cityCode, int countyCode) {
}
});
areaDialog.setAreaListener(new AreaDialog.AreaListener() {
public void OnOkClicked() {
Province province = areaDialog.getProvince();
String provinceStr = "";
String where1 = "";
if (province != null) {
where1 = province.getName();
provinceStr = province.getName();
}
City city = areaDialog.getCity();
if (city != null) {
if ("市辖区".equals(city.getName()) || "县".equals(city.getName())) {
where1 += provinceStr;
} else {
where1 += city.getName();
}
}
County country = areaDialog.getCountry();
if (country != null) {
if ("市辖区".equals(country.getName()) || "县".equals(country.getName())) {
where1 += "";
} else {
where1 += country.getName();
}
}
iAreaListener.onSelect(callid, where1);
}
});
if (!areaDialog.isVisible()) {
areaDialog.show(getSupportFragmentManager(), "area");
}
}
public void setJsMenu(JsMenu jsMenu) {
mJsMenu = jsMenu;
invalidateOptionsMenu();
}
}