3 回答

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
必須在
WebView
使用中啟用JavaScriptWebSettings.setJavaScriptEnabled(true);
該應(yīng)用需要許可
ACCESS_FINE_LOCATION
在
WebView
必須使用自定義WebChromeClient
它實(shí)現(xiàn)WebChromeClient.onGeolocationPermissionsShowPrompt()
。該方法被調(diào)用WebView
以獲得向JavaScript公開用戶位置的許可。(對于瀏覽器,我們向用戶顯示提示。)默認(rèn)實(shí)現(xiàn)不執(zhí)行任何操作,因此永遠(yuǎn)不會獲得權(quán)限,并且該位置永遠(yuǎn)不會傳遞給JavaScript。一個(gè)總是授予權(quán)限的簡單實(shí)現(xiàn)是......webView.setWebChromeClient(new WebChromeClient() { public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { callback.invoke(origin, true, false); }});
地理定位使用數(shù)據(jù)庫在會話之間保留緩存的位置和權(quán)限。使用設(shè)置數(shù)據(jù)庫的位置WebSettings.setGeolocationDatabasePath(...)
。如果未設(shè)置數(shù)據(jù)庫的位置,則永久存儲將不可用,但Geolocation將繼續(xù)正常運(yùn)行。要設(shè)置數(shù)據(jù)庫的位置,請使用...
webView.getSettings().setGeolocationDatabasePath( context.getFilesDir().getPath() );

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
您是否在清單中聲明了該許可?
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
您可能還需要聲明其他位置權(quán)限,例如:
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
接受或拒絕用戶位置的對話框由程序員設(shè)計(jì):D。正如Chris Cashwell所說,你只需使用這樣的回調(diào):
webview.setWebChromeClient(new WebChromeClient(){ public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { // callback.invoke(String origin, boolean allow, boolean remember); callback.invoke(origin, true, false); }}
在某些情況下,HTML5需要使用存儲,您必須啟用一些屬性,以便webview具有正常運(yùn)行的完全訪問權(quán)限。
// HTML5 API flags webView.getSettings().setAppCacheEnabled(true); webView.getSettings().setDatabaseEnabled(true); webView.getSettings().setDomStorageEnabled(true);
- 3 回答
- 0 關(guān)注
- 677 瀏覽
添加回答
舉報(bào)