gpt4 book ai didi

javascript - 在传单中创建一个圆圈而不重新加载 WebView

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:11 24 4
gpt4 key购买 nike

在android studio中,我通过webview调用传单 map ,如下:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.activity_main, container, false);
final WebView webView = (WebView) rootView.findViewById(webview);

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setGeolocationEnabled(true);
webView.setEnabled(true);
webView.setClickable(true);
GeoClient geo = new GeoClient();
webView.setWebChromeClient(geo);
String origin = "";
geo.onGeolocationPermissionsShowPrompt(origin, this);
webView.loadUrl("file:///android_asset/Map.html");

return rootView;
}

现在,我有一个正在运行的后台服务,偶尔会触发,我希望在发生这种情况时在 map 上出现一个圆圈。要从 java 运行 javascript 函数,将使用以下内容

    webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:fireCircle(" +
43.0000000 + "," +
-79.4000000 + "," +
300 + ",\"" +
"A CIRCLE!" + "\")");
}
});

传单 javascript 函数 fireCircle 读取为

  function fireCircle(lat, lng, rad, textTitle){
var circleColor = 'red';
var circle = L.circle([lat, lng], rad, {
color: circleColor,
fillColor: circleColor,
fillOpacity: 0.5
})
.bindPopup(String(textTitle))
.addTo(map);
}

到目前为止,我发现允许圆圈出现在 map 上的唯一方法是完全重新加载 webview 页面(onCreateView 每次都会创建一个新实例)。当服务随机触发时,这是 Not Acceptable 。

是否可以在不重新加载 JavaScript 页面的情况下触发该函数?

最佳答案

我认为你想要的是在 fireCircle 函数运行后重新渲染 map 。请参阅this tpic。简短回答:

function fireCircle(lat, lng, rad, textTitle){
var circleColor = 'red';
var circle = L.circle([lat, lng], rad, {
color: circleColor,
fillColor: circleColor,
fillOpacity: 0.5
})
.bindPopup(String(textTitle))
.addTo(map);
**map.invalidateSize();**
}

希望它有效!

关于javascript - 在传单中创建一个圆圈而不重新加载 WebView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43058584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com