為了令WEBVIEW打開地圖,地圖呼叫定位,即LBS功能,這是ANDROID原生代碼。便是在XE中,百思不得奇解。試了很多方法,都不知道如何寫好。
webView.geeSettings.setJavaScriptEnabled(true);
webView.getSettings.setGeolocationEnabled(true);
webView.getSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onGeolocationPermissionsShowPrompt(String origin,
android.webkit.GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
以上是安卓原生的JAVA寫法。
而DELPHI XE,我試著改寫FMX.WebBrowser.Android,在InitUIThread加上以下代碼,但是事件onGeolocationPermissionsShowPrompt怎么樣都不會觸發。不知道有沒有朋友解決這個問題的。這個問題解決的話,才能夠使用WEB使用.NET之類寫的程式呼叫百度,騰訊等定位功能,即LBS功能!
FJWebBrowser.getSettings.setJavaScriptCanOpenWindowsAutomatically(true);
FJWebBrowser.getSettings.setGeolocationEnabled(true);
FJWebBrowser.getSettings.setDomStorageEnabled(true);
FJWebChromeClient := TJWebChromeClientEx.Create;
FJWebBrowser.setWebChromeClient(FJWebChromeClient);
TJWebChromeClientEx = class(TJWebChromeClient)
public
procedure onGeolocationPermissionsShowPrompt(origin: JString;
callback: JGeolocationPermissions_Callback); cdecl;
end;
procedure TJWebChromeClientEx.onGeolocationPermissionsShowPrompt
(origin: JString; callback: JGeolocationPermissions_Callback);
begin
callback.invoke(origin, true, False);
inherited;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/78861.html
標籤:VCL組件開發及應用
上一篇:請問聯網客戶端的流量怎么統計?
