首页 文章

如何将远程JavaScript应用程序加载到cordova Windows Phone 8.1应用程序并让它访问cordova插件

提问于
浏览
9

我们正在尝试创建一个相对较薄的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 回答

  • 0

    难道你不能在加载webView后尝试创建一个脚本元素吗?

    尝试设置此代码:

    `var script = document.createElement('script');
         script.onload = function() {
           alert("Script loaded and ready"); //callback function
         };
        script.src = "http://whatever.com/the/script.js";
        document.getElementsByTagName('head')[0].appendChild(script);`
    

    在函数“onDeviceReady”上 .

    资料来源:document.createElement("script") synchronously

相关问题