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

时间:2014-11-12 17:33:22

标签: cordova gwt windows-phone-8.1

我们正在尝试创建一个相对较薄的cordova应用程序,以部署到Windows Phone 8.1平台 它将javascript应用程序从远程服务器加载到其主webView中,但也保持对cordova / phonegap插件的访问。 我们已在Android中成功完成此操作(请参阅本文的底部)。

远程应用程序需要以下功能。

  • 访问c​​ordova插件。
  • 设备脱机时的持久性。
  • 应用中的数据持久性,特别是在设备“#”时。电源循环。我们打算使用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 store app。

我们的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.js,cordova_plugins.js文件和插件目录复制到服务器 来自cordova项目平台\ android \ assets \ www direcory 跑完后

cordova build android

Releated documentation。

cordova 4.0.0 Cordova main docs

1 个答案:

答案 0 :(得分: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);`

on the function&#34; onDeviceReady&#34;。

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