是否可以在 Windows 上的 Cordova 移动应用程序中加载外部网站?

Is it possible to load an external website inside a Cordova mobile app on Windows?

我已经使用

创建了默认的 Cordova 应用程序
cordova create ...
cordova platform add android
cordova platform add windows

在 index.html 中,我添加了一些 links 到外部网站(不是本地安装的 html 文件):

<a href="http://www.example.com">External Website</a>
<a href="http://dev2.prsx.net">External Intranet Site</a>

在 Android 中,点击这些 link 将拉出 Cordova 容器中的站点。这是我想要的行为。在 Windows 上,它会在外部 Internet Explorer 浏览器中调出 example.com 页面。当我点击 dev2.prsx.net link 时没有任何反应。从字面上看,什么也没有发生。它不会打开浏览器,不会以任何方式更改屏幕,Visual Studio 中没有错误消息。

需要注意的是,我想在Cordova容器中加载内网站点,因为外部站点也会包含我将要使用的cordova.js文件和插件。这适用于 Android。但是现在,我只想知道我是否可以在 Windows.

上加载外部页面

是否可以在 Windows 平台上复制 Android 中看到的行为?

编辑: 我进入 package.windows.appxmanifest 文件并查看功能选项卡。我打开了专用网络功能,现在我的内部网站确实在外部 IE 浏览器中加载了。所以现在我唯一的问题是,我可以在 Cordova 容器中加载站点吗?

您可以使用 org.apache.cordova.inappbrowser to open web page like var ref = window.open('http://apache.org', '_blank', 'location=yes');

我发现唯一可行的方法是创建一个 iFrame 或 x-ms-webview 来加载远程内容。这实际上就是 InAppBrowser 为您所做的。但是,我的问题是我希望远程内容能够调用 Cordova API。为此,我在 web 视图和有权访问 API 的父本地页面之间来回传递消息。我使用 webview 上的 MSWebViewScriptNotify 事件和本文所述的 invokeScriptAsync 方法执行此操作:http://blogs.windows.com/buildingapps/2013/10/01/blending-apps-and-sites-with-the-html-x-ms-webview/

在点击事件中使用它,然后在您的应用中安装 InAppBrowser

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=no');

这将完全如您所愿