Commit 9494dcda authored by jianglx's avatar jianglx

webView 添加跳转到钱包的接口;修改导航选择高德地图时直接就导航的问题

parent ff28831c
...@@ -290,6 +290,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -290,6 +290,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
ARouter.getInstance() ARouter.getInstance()
.build(Constance.ACTIVITY_URL_COUPONALL) .build(Constance.ACTIVITY_URL_COUPONALL)
.navigation(); .navigation();
} else if (intent != null && "mine_wallet".equals(intent.getStringExtra("to"))) {
setCurrent(TYPE_MINE);
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_WALLET)
.navigation();
} else { } else {
wakeUp(intent); wakeUp(intent);
} }
......
...@@ -25,7 +25,7 @@ public class MapUtil { ...@@ -25,7 +25,7 @@ public class MapUtil {
private WeakReference<Context> weakReference; private WeakReference<Context> weakReference;
public MapUtil(Context context) { public MapUtil(Context context) {
weakReference=new WeakReference<>(context); weakReference = new WeakReference<>(context);
} }
public static MapUtil getInstance(Context context) { public static MapUtil getInstance(Context context) {
...@@ -37,9 +37,10 @@ public class MapUtil { ...@@ -37,9 +37,10 @@ public class MapUtil {
} }
private Context getContext(){ private Context getContext() {
return weakReference.get(); return weakReference.get();
} }
/** /**
* BD-09 坐标转换成 GCJ-02 坐标 * BD-09 坐标转换成 GCJ-02 坐标
* 百度转高德 * 百度转高德
...@@ -69,13 +70,14 @@ public class MapUtil { ...@@ -69,13 +70,14 @@ public class MapUtil {
/** /**
* 跳转百度地图 * 跳转百度地图
*
* @param latLng * @param latLng
* @param address * @param address
* @param isTrue 是否需要转换经纬度 * @param isTrue 是否需要转换经纬度
*/ */
public void goToBaiduMap(LatLng latLng, String address,boolean isTrue) { public void goToBaiduMap(LatLng latLng, String address, boolean isTrue) {
if(isTrue==true){ if (isTrue == true) {
latLng=GCJ2BD(latLng); latLng = GCJ2BD(latLng);
} }
if (!isInstalled(getContext(), "com.baidu.BaiduMap")) { if (!isInstalled(getContext(), "com.baidu.BaiduMap")) {
Toast.makeText(getContext(), "请先安装百度地图客户端", Toast.LENGTH_SHORT).show(); Toast.makeText(getContext(), "请先安装百度地图客户端", Toast.LENGTH_SHORT).show();
...@@ -97,22 +99,31 @@ public class MapUtil { ...@@ -97,22 +99,31 @@ public class MapUtil {
* @param address * @param address
* @param isTrue * @param isTrue
*/ */
public void goToGaodeMap(LatLng latLng, String address,boolean isTrue) { public void goToGaodeMap(LatLng ststartP, LatLng latLng, String address, boolean isTrue) {
if (!isInstalled(getContext(), "com.autonavi.minimap")) { if (!isInstalled(getContext(), "com.autonavi.minimap")) {
Toast.makeText(getContext(), "请先安装高德地图客户端", Toast.LENGTH_SHORT).show(); Toast.makeText(getContext(), "请先安装高德地图客户端", Toast.LENGTH_SHORT).show();
return; return;
} }
LatLng endPoint = isTrue==true?BD2GCJ(latLng):latLng;//坐标转换 LatLng endPoint = isTrue == true ? BD2GCJ(latLng) : latLng;//坐标转换
StringBuffer stringBuffer = new StringBuffer("androidamap://navi?sourceApplication=").append("amap"); LatLng startPoint = isTrue == true ? BD2GCJ(ststartP) : ststartP;
stringBuffer.append("&lat=").append(endPoint.latitude) StringBuffer stringBuffer = new StringBuffer("androidamap://route?sourceApplication=").append("滴房车");
.append("&lon=").append(endPoint.longitude).append("&keywords=" + address) stringBuffer.append("&dlat=").append(endPoint.latitude)
.append("&dlon=").append(endPoint.longitude)
.append("&slat=").append(startPoint.latitude)
.append("&slon=").append(startPoint.longitude)
.append("&keywords=" + address)
.append("&sname=").append("当前位置")
.append("&dname=").append(address)
.append("&dev=").append(0) .append("&dev=").append(0)
.append("&style=").append(2); .append("&m=").append(0)
.append("&t=").append(0)
.append("&showType=").append(1);
Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(stringBuffer.toString())); Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(stringBuffer.toString()));
intent.setPackage("com.autonavi.minimap"); intent.setPackage("com.autonavi.minimap");
getContext().startActivity(intent); getContext().startActivity(intent);
} }
/** /**
* 是否安装指定应用 * 是否安装指定应用
* *
......
...@@ -7,6 +7,7 @@ import android.view.View; ...@@ -7,6 +7,7 @@ import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.baidu.location.BDAbstractLocationListener; import com.baidu.location.BDAbstractLocationListener;
...@@ -37,6 +38,7 @@ import com.rv.camp.api.CampApi; ...@@ -37,6 +38,7 @@ import com.rv.camp.api.CampApi;
import com.rv.camp.bean.CampListBean; import com.rv.camp.bean.CampListBean;
import com.rv.camp.presenter.CampPresenter; import com.rv.camp.presenter.CampPresenter;
import com.rv.component.dialog.BottomPromptDialog; import com.rv.component.dialog.BottomPromptDialog;
import com.rv.component.utils.LocationRecord;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
...@@ -72,6 +74,9 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> { ...@@ -72,6 +74,9 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
private boolean isClick;//是否第一次点击 private boolean isClick;//是否第一次点击
private CampListBean.DataBeanX.DataBean selectBean; private CampListBean.DataBeanX.DataBean selectBean;
private LatLng locationLatLng;
public static Intent getIntent(Context context) { public static Intent getIntent(Context context) {
return new Intent(context, CampShopShowActivity.class); return new Intent(context, CampShopShowActivity.class);
} }
...@@ -85,6 +90,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> { ...@@ -85,6 +90,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
// titleView.setTitle(mActivity.getString(R.string.rv_shop_map)); // titleView.setTitle(mActivity.getString(R.string.rv_shop_map));
showTitle(false); showTitle(false);
// initGps();
initMap(); initMap();
} }
...@@ -95,6 +101,40 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> { ...@@ -95,6 +101,40 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
} }
/**
* 初始化定位
*/
public void initGps() {
if (!isGpsOpen()) {
Toast.makeText(getApplicationContext(), "请先打开gps", Toast.LENGTH_SHORT).show();
return;
}
locationManager = new LocationManager(getApplicationContext());
locationManager.getLocationDetail(new BDAbstractLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
int errorCode = location.getLocType();
if (errorCode == 61 || errorCode == 161) {
double latLatitude = LocationRecord.getOrSavelatLatitude(getApplicationContext(), errorCode, location.getLatitude());
double lonLongitude = LocationRecord.getOrSaveLonLongitude(getApplicationContext(), errorCode, location.getLongitude());
locationLatLng = new LatLng(latLatitude, lonLongitude);
} else {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mActivity, "定位失败!", Toast.LENGTH_SHORT).show();
}
});
}
}
});
}
private boolean isGpsOpen() {
android.location.LocationManager lm = (android.location.LocationManager) this.getSystemService(LOCATION_SERVICE);
return lm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER);
}
@Override @Override
public void onShowResult(int requestType, BaseBean result) { public void onShowResult(int requestType, BaseBean result) {
processData((CampListBean) result); processData((CampListBean) result);
...@@ -210,7 +250,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> { ...@@ -210,7 +250,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
isClick = true; isClick = true;
isVisible(View.VISIBLE); isVisible(View.VISIBLE);
Bundle bundle = marker.getExtraInfo(); Bundle bundle = marker.getExtraInfo();
selectBean= (CampListBean.DataBeanX.DataBean) bundle.getSerializable("info"); selectBean = (CampListBean.DataBeanX.DataBean) bundle.getSerializable("info");
tvAddress.setText(String.format("%1$s%2$s", "地址:", selectBean.getAddress())); tvAddress.setText(String.format("%1$s%2$s", "地址:", selectBean.getAddress()));
tvPhone.setText(String.format("%1$s%2$s", "联系电话:", selectBean.getPhone())); tvPhone.setText(String.format("%1$s%2$s", "联系电话:", selectBean.getPhone()));
tvName.setText(selectBean.getName()); tvName.setText(selectBean.getName());
...@@ -350,7 +390,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> { ...@@ -350,7 +390,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
dismiss(); dismiss();
} else if (i == R.id.btn2) { } else if (i == R.id.btn2) {
MapUtil.getInstance(mActivity).goToGaodeMap(latLng, address, true); MapUtil.getInstance(mActivity).goToGaodeMap(locationLatLng == null ? new LatLng(LocationRecord.getLat(getApplicationContext()), LocationRecord.getLon(getApplicationContext())) : locationLatLng, latLng, address, true);
dismiss(); dismiss();
} else if (i == R.id.btn3) { } else if (i == R.id.btn3) {
......
...@@ -2,11 +2,13 @@ package com.rv.home.rv.module.ui.main.home; ...@@ -2,11 +2,13 @@ package com.rv.home.rv.module.ui.main.home;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.android.arouter.facade.annotation.Autowired; import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
...@@ -29,6 +31,7 @@ import com.ruiwenliu.wrapper.util.LocationManager; ...@@ -29,6 +31,7 @@ import com.ruiwenliu.wrapper.util.LocationManager;
import com.ruiwenliu.wrapper.util.MapUtil; import com.ruiwenliu.wrapper.util.MapUtil;
import com.ruiwenliu.wrapper.util.ViewHolder; import com.ruiwenliu.wrapper.util.ViewHolder;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.LocationRecord;
import com.rv.home.R; import com.rv.home.R;
import com.rv.home.R2; import com.rv.home.R2;
import com.rv.component.dialog.PickerDialog; import com.rv.component.dialog.PickerDialog;
...@@ -77,6 +80,8 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> { ...@@ -77,6 +80,8 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> {
@Autowired() @Autowired()
double longitude; double longitude;
private LatLng locationLatLng = null;
@Override @Override
protected int setLayout() { protected int setLayout() {
...@@ -89,11 +94,46 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> { ...@@ -89,11 +94,46 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> {
showTitle(false); showTitle(false);
initMap(); initMap();
// initGps();
tvAddress.setText(String.format("%1$s%2$s", "地址:", addrDetail)); tvAddress.setText(String.format("%1$s%2$s", "地址:", addrDetail));
tvPhone.setText(String.format("%1$s%2$s", "联系电话:", phone)); tvPhone.setText(String.format("%1$s%2$s", "联系电话:", phone));
tvName.setText(name); tvName.setText(name);
} }
/**
* 初始化定位
*/
public void initGps() {
if (!isGpsOpen()) {
Toast.makeText(getApplicationContext(), "请先打开gps", Toast.LENGTH_SHORT).show();
return;
}
locationManager = new LocationManager(getApplicationContext());
locationManager.getLocationDetail(new BDAbstractLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
int errorCode = location.getLocType();
if (errorCode == 61 || errorCode == 161) {
double latLatitude = LocationRecord.getOrSavelatLatitude(getApplicationContext(), errorCode, location.getLatitude());
double lonLongitude = LocationRecord.getOrSaveLonLongitude(getApplicationContext(), errorCode, location.getLongitude());
locationLatLng = new LatLng(latLatitude, lonLongitude);
} else {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mActivity, "定位失败!", Toast.LENGTH_SHORT).show();
}
});
}
}
});
}
private boolean isGpsOpen() {
android.location.LocationManager lm = (android.location.LocationManager) this.getSystemService(LOCATION_SERVICE);
return lm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER);
}
@Override @Override
protected void loadData(Bundle savedInstanceState, Intent intent) { protected void loadData(Bundle savedInstanceState, Intent intent) {
...@@ -203,7 +243,7 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> { ...@@ -203,7 +243,7 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> {
.longitude(location.getLongitude()).build(); .longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData); mBaiduMap.setMyLocationData(locData);
if (isFirstLoc ) { if (isFirstLoc) {
isFirstLoc = false; isFirstLoc = false;
mBaiduMap.addOverlay(getMark()); mBaiduMap.addOverlay(getMark());
updateMap(new LatLng(latitude, longitude)); updateMap(new LatLng(latitude, longitude));
...@@ -247,7 +287,7 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> { ...@@ -247,7 +287,7 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> {
MapUtil.getInstance(mActivity).goToBaiduMap(latLng, address, false); MapUtil.getInstance(mActivity).goToBaiduMap(latLng, address, false);
dismiss(); dismiss();
} else if (v.getId() == R.id.btn_album) { } else if (v.getId() == R.id.btn_album) {
MapUtil.getInstance(mActivity).goToGaodeMap(latLng, address, true); MapUtil.getInstance(mActivity).goToGaodeMap(locationLatLng == null ? new LatLng(LocationRecord.getLat(getApplicationContext()), LocationRecord.getLon(getApplicationContext())) : locationLatLng, latLng, address, true);
dismiss(); dismiss();
} else if (v.getId() == R.id.btn_cancel) { } else if (v.getId() == R.id.btn_cancel) {
dismiss(); dismiss();
......
...@@ -7,6 +7,7 @@ import android.view.View; ...@@ -7,6 +7,7 @@ import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.baidu.location.BDAbstractLocationListener; import com.baidu.location.BDAbstractLocationListener;
...@@ -29,6 +30,7 @@ import com.ruiwenliu.wrapper.base.BaseBean; ...@@ -29,6 +30,7 @@ import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity; import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.util.LocationManager; import com.ruiwenliu.wrapper.util.LocationManager;
import com.ruiwenliu.wrapper.util.MapUtil; import com.ruiwenliu.wrapper.util.MapUtil;
import com.rv.component.utils.LocationRecord;
import com.rv.home.R; import com.rv.home.R;
import com.rv.home.R2; import com.rv.home.R2;
import com.ruiwenliu.wrapper.util.ViewHolder; import com.ruiwenliu.wrapper.util.ViewHolder;
...@@ -75,6 +77,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -75,6 +77,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
private double mLon; private double mLon;
private boolean isClick;//是否第一次点击 private boolean isClick;//是否第一次点击
private ShopListBean.DataBeanX.DataBean selectBean; private ShopListBean.DataBeanX.DataBean selectBean;
private LatLng locationLatLng;
public static Intent getIntent(Context context, double lat, double lon) { public static Intent getIntent(Context context, double lat, double lon) {
return new Intent(context, ShopShowActivity.class) return new Intent(context, ShopShowActivity.class)
...@@ -93,9 +96,45 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -93,9 +96,45 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
showTitle(false); showTitle(false);
mLat = intent.getDoubleExtra("lat", 0); mLat = intent.getDoubleExtra("lat", 0);
mLon = intent.getDoubleExtra("lon", 0); mLon = intent.getDoubleExtra("lon", 0);
// initGps();
initMap(); initMap();
} }
/**
* 初始化定位
*/
public void initGps() {
if (!isGpsOpen()) {
Toast.makeText(getApplicationContext(), "请先打开gps", Toast.LENGTH_SHORT).show();
return;
}
locationManager = new LocationManager(getApplicationContext());
locationManager.getLocationDetail(new BDAbstractLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
int errorCode = location.getLocType();
if (errorCode == 61 || errorCode == 161) {
double latLatitude = LocationRecord.getOrSavelatLatitude(getApplicationContext(), errorCode, location.getLatitude());
double lonLongitude = LocationRecord.getOrSaveLonLongitude(getApplicationContext(), errorCode, location.getLongitude());
locationLatLng = new LatLng(latLatitude, lonLongitude);
} else {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mActivity, "定位失败!", Toast.LENGTH_SHORT).show();
}
});
}
}
});
}
private boolean isGpsOpen() {
android.location.LocationManager lm = (android.location.LocationManager) this.getSystemService(LOCATION_SERVICE);
return lm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER);
}
@Override @Override
protected void loadData(Bundle savedInstanceState, Intent intent) { protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent); super.loadData(savedInstanceState, intent);
...@@ -224,7 +263,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -224,7 +263,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
isClick = true; isClick = true;
isVisible(View.VISIBLE); isVisible(View.VISIBLE);
Bundle bundle = marker.getExtraInfo(); Bundle bundle = marker.getExtraInfo();
selectBean= (ShopListBean.DataBeanX.DataBean) bundle.getSerializable("info"); selectBean = (ShopListBean.DataBeanX.DataBean) bundle.getSerializable("info");
tvAddress.setText(String.format("%1$s%2$s", "地址:", selectBean.getAddrDetail())); tvAddress.setText(String.format("%1$s%2$s", "地址:", selectBean.getAddrDetail()));
tvPhone.setText(String.format("%1$s%2$s", "联系电话:", selectBean.getLeaderContactInfo())); tvPhone.setText(String.format("%1$s%2$s", "联系电话:", selectBean.getLeaderContactInfo()));
tvName.setText(selectBean.getName()); tvName.setText(selectBean.getName());
...@@ -363,7 +402,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -363,7 +402,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
dismiss(); dismiss();
} else if (i == R.id.btn_album) { } else if (i == R.id.btn_album) {
MapUtil.getInstance(mActivity).goToGaodeMap(latLng, address, true); MapUtil.getInstance(mActivity).goToGaodeMap(locationLatLng == null ? new LatLng(LocationRecord.getLat(getApplicationContext()), LocationRecord.getLon(getApplicationContext())) : locationLatLng, latLng, address, true);
dismiss(); dismiss();
} else if (i == R.id.btn_cancel) { } else if (i == R.id.btn_cancel) {
......
...@@ -193,7 +193,12 @@ public class RvWebView extends WebView { ...@@ -193,7 +193,12 @@ public class RvWebView extends WebView {
@JavascriptInterface @JavascriptInterface
public void toMyWallet() { public void toMyWallet() {
ComponentName name = new ComponentName(getContext(), "com.xxfc.rv.MainActivity");
Intent intent = new Intent();
intent.setComponent(name);
intent.putExtra("to", "mine_wallet");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) ;
getContext().startActivity(intent);
} }
@JavascriptInterface @JavascriptInterface
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment