1
, 나는 웹보기를 통해 전단지 맵을 호출 웹뷰 다시로드하지 않고 전단지에 동그라미를 만드는 :다음과 같이 안드로이드 스튜디오에서
@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;
}
을 지금을, 나는 가끔 발생시키는 배경 서비스 실행을하고 난 원에 원하는 이런 일이 발생하면지도에 나타납니다. 자바에서 자바 스크립트 함수를 실행하려면, 다음
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:fireCircle(" +
43.0000000 + "," +
-79.4000000 + "," +
300 + ",\"" +
"A CIRCLE!" + "\")");
}
});
을 사용되는 경우 기능 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);
}
로 지금까지 읽어 자바 스크립트 전단지, 내가 원에 할 수 있도록 찾은 유일한 방법 (onCreateView는 매번 새로운 인스턴스를 생성합니다). 서비스가 임의 발사 일 때 허용되지 않습니다.
자바 스크립트 페이지를 다시로드하지 않고도 기능을 실행할 수 있습니까?