android - 在 Android 混合应用中创建 Ractive 实例导致延迟和错误

标签 android webview geolocation hybrid ractivejs

我正在使用 Ractive在混合 Android 应用程序的 WebView 组件中运行的网络应用程序中。整个网络应用程序在设备本地,并随应用程序一起安装。

当我在桌面浏览器中运行网络应用程序时没有问题。

但是,在混合应用程序中,当我尝试创建 Ractive 实例时,有大约 30 秒的延迟。我一直在 ADT LogCat 中得到这个:

10-31 10:37:58.859: E/SQLiteLog(26299): (14) cannot open file at line 30174 of [00bb9c9ce4]
10-31 10:37:58.859: E/SQLiteLog(26299): (14) os_unix.c:30174: (2) open(/CachedGeoposition.db) - 
10-31 10:37:58.871: D/WebKit(26299): ERROR: 
10-31 10:37:58.871: D/WebKit(26299): SQLite database failed to load from /CachedGeoposition.db
10-31 10:37:58.871: D/WebKit(26299): Cause - unable to open database file
10-31 10:37:58.879: D/WebKit(26299): external/webkit/Source/WebCore/platform/sql/SQLiteDatabase.cpp(71) : bool WebCore::SQLiteDatabase::open(const WTF::String&, bool)
10-31 10:38:26.984: D/dalvikvm(26299): GC_FOR_ALLOC freed 133K, 36% free 8551K/13191K, paused 28ms, total 29ms
10-31 10:38:27.031: D/dalvikvm(26299): GC_CONCURRENT freed 17K, 32% free 9045K/13191K, paused 12ms+5ms, total 44ms
10-31 10:38:27.031: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 28ms
10-31 10:38:27.168: D/dalvikvm(26299): GC_CONCURRENT freed 181K, 29% free 9375K/13191K, paused 16ms+4ms, total 55ms
10-31 10:38:27.168: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 8ms
10-31 10:38:27.297: D/dalvikvm(26299): GC_CONCURRENT freed 163K, 27% free 9724K/13191K, paused 15ms+8ms, total 80ms
10-31 10:38:27.297: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 35ms
10-31 10:38:27.410: D/dalvikvm(26299): GC_CONCURRENT freed 187K, 24% free 10126K/13191K, paused 12ms+7ms, total 57ms
10-31 10:38:27.410: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 17ms
10-31 10:38:27.562: D/dalvikvm(26299): GC_CONCURRENT freed 277K, 20% free 10571K/13191K, paused 11ms+3ms, total 57ms
10-31 10:38:27.562: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 30ms

即使我尝试创建一个仅提供 eltemplate 配置字段的精简 Ractive 实例时,我也会得到这个。当我跳过创建 Ractive 实例时,我没有收到错误。而且我编写的所有代码都没有使用地理定位或发出非本地请求。

如您所见,它似乎在尝试做一些与地理定位有关的事情。我在 Ractive 源代码中搜索了一些提示,但一无所获(如果我这样做的话,我会感到很惊讶)。

有人遇到过这种情况吗?

最佳答案

仍然不知道为什么实例化一个 Ractive 实例会触发这个问题。但是,将其添加到嵌入 WebView 的 Activity 中解决了这个问题:

WebSettings settings = webView.getSettings();
settings.setGeolocationDatabasePath(this.getFilesDir().getPath());

更多信息:https://stackoverflow.com/a/5423026/369722

关于android - 在 Android 混合应用中创建 Ractive 实例导致延迟和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713571/

相关文章:

java - Android webview输入类型文件

javascript - Electron 使用多个 js 脚本自动化 webview

javascript - 如何获取使用地理定位创建的动态内容并在另一个 div 中使用它?

android - 如何获取 Android 中位置更新的时间?

Flutter 地理定位器插件 Geolocator().placemarkFromAddress() 和 Geolocator().placemarkFromCoordinates() 不起作用

Android Eclipse DDMS > Heap > 导致GC变灰

java - 在android NDK的java类中调用C函数

java - 使用 Retrofit 从最内部类获取数据。帮我显示A类和B类的数据

android - 在 Parse 中,从本地数据存储中取消固定对象是否也会删除它们指向的对象?

android - 如何在android webview中选择一个词?