Android的Javascript界面无法正常工作

麦克兰

我正在尝试将变量从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 extrasNull如何解决此问题?

弗兰克

确保在创建启动第二个活动的意图时传递值。如果bundle为null,则表示它们不包含在意图中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android登录页面无法正常工作

来自分类Dev

合并框架更新用户界面无法正常工作

来自分类Dev

界面无法获取回调Android

来自分类Dev

我的 Android 用户界面无法运行?

来自分类Dev

简单的JSP页面无法正常工作

来自分类Dev

显示加载页面无法正常工作

来自分类Dev

正在加载页面无法正常工作

来自分类Dev

PHP处理页面无法正常工作

来自分类Dev

动态页面无法正常工作

来自分类Dev

肉桂桌面无法正常工作

来自分类Dev

远程桌面无法正常工作

来自分类Dev

WordPress的子页面无法正常工作

来自分类Dev

gnome桌面无法正常工作

来自分类Dev

应用内审核界面无法在Android中启动

来自分类Dev

升级后制造商页面无法正常工作

来自分类Dev

为什么我的在线用户页面无法正常工作?

来自分类Dev

geom_text和构面无法正常工作

来自分类Dev

CSS:SVG子画面无法正常工作

来自分类Dev

Laravel Auth :: attempt / login页面无法正常工作

来自分类Dev

使用cheerio抓取页面无法正常工作

来自分类Dev

为什么我的在线用户页面无法正常工作?

来自分类Dev

最基本的fullPage.js页面无法正常工作

来自分类Dev

生成的Google图表页面无法正常工作

来自分类Dev

angularjs导入使html页面无法正常工作

来自分类Dev

CSS:SVG子画面无法正常工作

来自分类Dev

TightVNC和ubuntu桌面无法正常工作

来自分类Dev

Laravel Auth :: attempt /登录页面无法正常工作

来自分类Dev

geom_text和构面无法正常工作

来自分类Dev

使用Ajax加载部分页面无法正常工作?