我正在尝试将变量从Android传递给JavaScript。单击地图按钮时,它将通过以下onCreate
方法打开此类:
@SuppressLint("JavascriptInterface")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maps);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
myWebView = (WebView) findViewById(R.id.webview);
setMyWebviewSettings(myWebView.getSettings());
myWebView.setWebViewClient(new WebViewClient());
myWebView.setWebChromeClient(new WebChromeClient());
Bundle extras = getIntent().getExtras();
double[] coordinates = setCoordinates(extras);
myWebView.addJavascriptInterface(new JavaScriptInterface(coordinates), "JSInterface");
myWebView.loadUrl("http://10.0.0.32:8887/services/maps/examples/basic-example.htm");
}
这里是setMyWebviewSettings
方法:
private void setMyWebviewSettings(WebSettings MyWebviewSettings){
MyWebviewSettings.setAllowFileAccessFromFileURLs(true);
MyWebviewSettings.setAllowUniversalAccessFromFileURLs(true);
MyWebviewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
MyWebviewSettings.setJavaScriptEnabled(true);
MyWebviewSettings.setDomStorageEnabled(true);
MyWebviewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
MyWebviewSettings.setBuiltInZoomControls(true);
MyWebviewSettings.setAllowFileAccess(true);
MyWebviewSettings.setSupportZoom(true);
}
然后是JavaScriptInterface
:
public class JavaScriptInterface {
double lat;
double lon;
double pan;
JavaScriptInterface(double[] coordinate) {
this.lat = coordinate[0];
this.lon = coordinate[1];
this.pan = coordinate[2];
}
public double getLatValue() {
return lat;
}
public double getLonValue() {
return lon;
}
public double getPanValue() {
return pan;
}
}
这是setCoordinates
方法:
private double[] setCoordinates(Bundle extras) {
double[] coordinates = new double[3];
coordinates[0] = 45.9049;
coordinates[1] = 13.3177;
coordinates[2] = 15;
if (extras != null) {
coordinates[0] = extras.getDouble("lat");
coordinates[1] = extras.getDouble("lon");
coordinates[2] = extras.getDouble("pan");
}
return coordinates;
}
一切正常,除了它不会加载地图。该Bundle extras
是Null
。如何解决此问题?
确保在创建启动第二个活动的意图时传递值。如果bundle为null,则表示它们不包含在意图中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句