首页 > 解决方案 > 如何在 WebView 中获取位置

问题描述

在我的 MainActivity 中,我可以使用如下代码获取 Location:

private BroadcastReceiver broadcastReceiver;
private Location currentLocation;

@Override
protected void onResume(){
    super.onResume();
    if(broadcastReceiver == null){
        broadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                currentLocation = (Location)intent.getExtras().get("coordinates");
            }
        };
    }
    registerReceiver(broadcastReceiver, new IntentFilter("location_update"));
}

现在我WebView在这个 Activity 中,想将 Location 发送到 JavaScript 里面WebActivity

要将代码从Java代码发送到 JS 代码中,WebActivity我创建了 webinterface 类并使用如下代码:

@JavascriptInterface
public String GetHi(){
    return "Hi";
}

但是我如何发送位置?

标签: android

解决方案


您始终可以使用良好的旧 Json 将数据传递到 Javascript 端(此后称为 The Dark Side)。序列化您的数据并将其作为序列化的 JSON 字符串传递给您的 Dark Side,然后在 Dark Side 中您可以将其反序列化为您的 Javascript Location 对象。


推荐阅读