1:android WebView控件可注册javaScript脚本接口,可实现android与 js 交互
示例:
android端 WebViewActivity.java文件
//小区GIS 添加可被js调用的接口
//设置可调用js
webView.getSettings().setJavaScriptEnabled(true);
//添加可被js调用的接口
webView.addJavascriptInterface(new SubmitLngLatData(), "baiduMap");
//提供给basePath.js调用的方法
@JavascriptInterface / /该调用的方法 要声明@JavascriptInterface 才可被js调用
public GpsPoint displayGIS(){
Systeml.out.println("该方法用于basePath.js文件调用");
return point;
}
basePath.js文件
/**
* 小区GIS
*/
function goResources() {
//小区GIS地图接口调用
//获取提交过来的gps经纬度数据
var gpsData = window.baiduMap.displayGIS();
var longitude = gpsData.getLongitude(); //获得经度
var latitude = gpsData.getLatitude(); //获得纬度
// goOut("http://192.168.100.20:8001/search/mobileGridSearch?Lng="+longitude+"&Lat="+latitude);
}
示图:
2:jsp文件变量声明及js文件引用变量方法
3:关于打开/关闭 手机GPS应用功能代码 强制打开/关闭 提醒用户是否打开GPS
/**
* 强制打开gps
* @param context
*/
public void openGPS(Context context) {
Intent GPSIntent = new Intent();
GPSIntent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
GPSIntent.addCategory("android.intent.category.ALTERNATIVE");
GPSIntent.setData(Uri.parse("custom:3"));
try {
PendingIntent.getBroadcast(context, 0, GPSIntent, 0).send();
} catch (CanceledException e) {
e.printStackTrace();
}
}
/**
* 判断是否打开gps
* @param context
* @return
*/
public boolean isOPen(Context context) {
LocationManager locationManager
= (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
// 通过GPS卫星定位,定位级别可以精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快)
boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
// 通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位)
boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (gps || network) {
return true;
}
return false;
}
public class SingletonTest {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
// 测试创建的两个对象是否为同一个对象
System.out.println(s1 == s2);
}
}
//单例模式之懒汉式
class Singleton {
// 2:在类内部创建一个实例
private static Singleton instance = null;
// 1:私有化构造器,使得此类只能在类内部创建实例,而不能在类外部创建实例
private Singleton() {
}
// 3:私有化此实例,通过公共的方法调用。
// 4:此公共的方法,通过类调用,因此设置为static,同时此实例也设置为static
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
}