我们正在尝试创建一个相对较薄的cordova应用程序,以部署到Windows Phone 8.1平台,该平台从远程服务器将javascript应用程序加载到其主webView中,同时还保持对cordova / phonegap插件的访问 . 我们已在Android中成功完成此操作(请参阅本文的底部) .
远程应用程序需要以下功能 .
-
访问cordova插件 .
设备离线时 -
持久性 .
-
应用程序中的数据持久性,特别是在设备的电源循环时 . 我们打算为此使用indexDb .
这有可能吗?如果可以的话怎么样?
Windows Phone 8.1中的当前播放状态
window.location = remoteUrl ;
导致remoteUrl在系统浏览器中打开 . 这不是我们要求的 .
Windows平台的inapp浏览器与cordova wiki中描述的略有不同 . 它暗示了
window.open('http://whitelisted-url.com', '_self');
将打开Cordova WebView中的URL . 这不会发生 .
我们可以手动创建Web视图并将其指向远程应用程序
var wv = dodument.createElement('x-ms-webview');
wv.style.width = "100%";
wv.style.height = "100%";
wv.navigate(remoteUrl);
document.body.appendChild(wv);
但是,这不允许我们访问cordova插件,即使服务器将cordova.js文件作为下载的应用程序的一部分提供 .
还不确定webview是如何打包的,以及在Windows应用程序执行之间缓存数据的持久性 .
我们的Android Soulution
包括inappBrowser插件 .
config.xml中
<access origin="*" />
在Android Play商店应用程序中,我们执行:
function launchRemote()
{
window.open(remoteUrl,'_self');
}
document.addEventListener('deviceready', launchRemote, false);
远程服务应用程序启动页面包括该条目
<script type="text/javascript" src="cordova.js"></script>
并在运行后从cordova项目平台\ android \ assets \ www direcory复制到服务器cordova.js,cordova_plugins.js文件和插件目录
cordova build android
发布的文件 .
cordova 4.0.0 Cordova main docs
1 回答
难道你不能在加载webView后尝试创建一个脚本元素吗?
尝试设置此代码:
在函数“onDeviceReady”上 .
资料来源:document.createElement("script") synchronously