Commit 9494dcda authored by jianglx's avatar jianglx

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

parent ff28831c
......@@ -290,6 +290,11 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_COUPONALL)
.navigation();
} else if (intent != null && "mine_wallet".equals(intent.getStringExtra("to"))) {
setCurrent(TYPE_MINE);
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_WALLET)
.navigation();
} else {
wakeUp(intent);
}
......
......@@ -25,7 +25,7 @@ public class MapUtil {
private WeakReference<Context> weakReference;
public MapUtil(Context context) {
weakReference=new WeakReference<>(context);
weakReference = new WeakReference<>(context);
}
public static MapUtil getInstance(Context context) {
......@@ -37,9 +37,10 @@ public class MapUtil {
}
private Context getContext(){
private Context getContext() {
return weakReference.get();
}
/**
* BD-09 坐标转换成 GCJ-02 坐标
* 百度转高德
......@@ -69,13 +70,14 @@ public class MapUtil {
/**
* 跳转百度地图
*
* @param latLng
* @param address
* @param isTrue 是否需要转换经纬度
*/
public void goToBaiduMap(LatLng latLng, String address,boolean isTrue) {
if(isTrue==true){
latLng=GCJ2BD(latLng);
public void goToBaiduMap(LatLng latLng, String address, boolean isTrue) {
if (isTrue == true) {
latLng = GCJ2BD(latLng);
}
if (!isInstalled(getContext(), "com.baidu.BaiduMap")) {
Toast.makeText(getContext(), "请先安装百度地图客户端", Toast.LENGTH_SHORT).show();
......@@ -97,22 +99,31 @@ public class MapUtil {
* @param address
* @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")) {
Toast.makeText(getContext(), "请先安装高德地图客户端", Toast.LENGTH_SHORT).show();
return;
}
LatLng endPoint = isTrue==true?BD2GCJ(latLng):latLng;//坐标转换
StringBuffer stringBuffer = new StringBuffer("androidamap://navi?sourceApplication=").append("amap");
stringBuffer.append("&lat=").append(endPoint.latitude)
.append("&lon=").append(endPoint.longitude).append("&keywords=" + address)
LatLng endPoint = isTrue == true ? BD2GCJ(latLng) : latLng;//坐标转换
LatLng startPoint = isTrue == true ? BD2GCJ(ststartP) : ststartP;
StringBuffer stringBuffer = new StringBuffer("androidamap://route?sourceApplication=").append("滴房车");
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("&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.setPackage("com.autonavi.minimap");
getContext().startActivity(intent);
}
/**
* 是否安装指定应用
*
......
......@@ -7,6 +7,7 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.baidu.location.BDAbstractLocationListener;
......@@ -37,6 +38,7 @@ import com.rv.camp.api.CampApi;
import com.rv.camp.bean.CampListBean;
import com.rv.camp.presenter.CampPresenter;
import com.rv.component.dialog.BottomPromptDialog;
import com.rv.component.utils.LocationRecord;
import java.util.ArrayList;
import java.util.LinkedHashMap;
......@@ -72,6 +74,9 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
private boolean isClick;//是否第一次点击
private CampListBean.DataBeanX.DataBean selectBean;
private LatLng locationLatLng;
public static Intent getIntent(Context context) {
return new Intent(context, CampShopShowActivity.class);
}
......@@ -85,6 +90,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
// titleView.setTitle(mActivity.getString(R.string.rv_shop_map));
showTitle(false);
// initGps();
initMap();
}
......@@ -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
public void onShowResult(int requestType, BaseBean result) {
processData((CampListBean) result);
......@@ -210,7 +250,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
isClick = true;
isVisible(View.VISIBLE);
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()));
tvPhone.setText(String.format("%1$s%2$s", "联系电话:", selectBean.getPhone()));
tvName.setText(selectBean.getName());
......@@ -350,7 +390,7 @@ public class CampShopShowActivity extends BaseStatusActivity<CampPresenter> {
dismiss();
} 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();
} else if (i == R.id.btn3) {
......
......@@ -2,11 +2,13 @@ package com.rv.home.rv.module.ui.main.home;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
......@@ -29,6 +31,7 @@ import com.ruiwenliu.wrapper.util.LocationManager;
import com.ruiwenliu.wrapper.util.MapUtil;
import com.ruiwenliu.wrapper.util.ViewHolder;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.LocationRecord;
import com.rv.home.R;
import com.rv.home.R2;
import com.rv.component.dialog.PickerDialog;
......@@ -77,6 +80,8 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> {
@Autowired()
double longitude;
private LatLng locationLatLng = null;
@Override
protected int setLayout() {
......@@ -89,11 +94,46 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> {
showTitle(false);
initMap();
// initGps();
tvAddress.setText(String.format("%1$s%2$s", "地址:", addrDetail));
tvPhone.setText(String.format("%1$s%2$s", "联系电话:", phone));
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
protected void loadData(Bundle savedInstanceState, Intent intent) {
......@@ -203,7 +243,7 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> {
.longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
if (isFirstLoc ) {
if (isFirstLoc) {
isFirstLoc = false;
mBaiduMap.addOverlay(getMark());
updateMap(new LatLng(latitude, longitude));
......@@ -247,7 +287,7 @@ public class CarDetailMapActivity extends SwipeBackActivity<CommonPresenter> {
MapUtil.getInstance(mActivity).goToBaiduMap(latLng, address, false);
dismiss();
} 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();
} else if (v.getId() == R.id.btn_cancel) {
dismiss();
......
......@@ -7,6 +7,7 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.baidu.location.BDAbstractLocationListener;
......@@ -29,6 +30,7 @@ import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.util.LocationManager;
import com.ruiwenliu.wrapper.util.MapUtil;
import com.rv.component.utils.LocationRecord;
import com.rv.home.R;
import com.rv.home.R2;
import com.ruiwenliu.wrapper.util.ViewHolder;
......@@ -75,6 +77,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
private double mLon;
private boolean isClick;//是否第一次点击
private ShopListBean.DataBeanX.DataBean selectBean;
private LatLng locationLatLng;
public static Intent getIntent(Context context, double lat, double lon) {
return new Intent(context, ShopShowActivity.class)
......@@ -93,9 +96,45 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
showTitle(false);
mLat = intent.getDoubleExtra("lat", 0);
mLon = intent.getDoubleExtra("lon", 0);
// initGps();
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
protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent);
......@@ -224,7 +263,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
isClick = true;
isVisible(View.VISIBLE);
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()));
tvPhone.setText(String.format("%1$s%2$s", "联系电话:", selectBean.getLeaderContactInfo()));
tvName.setText(selectBean.getName());
......@@ -363,7 +402,7 @@ public class ShopShowActivity extends BaseStatusActivity<CommonPresenter> {
dismiss();
} 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();
} else if (i == R.id.btn_cancel) {
......
......@@ -193,7 +193,12 @@ public class RvWebView extends WebView {
@JavascriptInterface
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
......
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