相关疑难解决方法(0)

Android webview地理位置数据库无法打开

我有使用javascript geolocation api的网站,并希望它在webview中打开.我在清单文件中设置了这些权限:

<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"/>
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我还设置了webview设置:

webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setGeolocationDatabasePath("/data/data/com.my.app/databases");
webview.getSettings().setGeolocationEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我还处理了javascript地理定位对话框:

webview.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
        callback.invoke(origin, true, false);
    }
});
Run Code Online (Sandbox Code Playgroud)

地理位置本身正在运行,但我无法将地理位置缓存到数据库中.它应该自己进入CachedGeoposition.db,但是当我启动webview时,我得到了这个奇怪的SQLite错误:

E/SQLiteLog(22653): (14) cannot open file at line 30174 of [00bb9c9ce4]
E/SQLiteLog(22653): (14) os_unix.c:30174: (2) open(/CachedGeoposition.db) -
D/WebKit  (22653): ERROR:
D/WebKit  (22653): SQLite database failed to load from /CachedGeoposition.db
D/WebKit  (22653): Cause - unable to open database file
D/WebKit  (22653):
D/WebKit  (22653): external/webkit/Source/WebCore/platform/sql/SQLiteDatabase.cp …
Run Code Online (Sandbox Code Playgroud)

sqlite android geolocation webview

12
推荐指数
1
解决办法
6364
查看次数

标签 统计

android ×1

geolocation ×1

sqlite ×1

webview ×1