我有一个网站,想通过混合应用程序在手机上增强功能。理想情况下,应用程序将通过 http 加载远程站点,但在本地加载特定于平台的代码。我尝试建立一个 Cordova 项目来执行此操作,但遇到很多麻烦。我的环境是 Nexus 7 Android 4.4.4 上的 Cordova 4.3.1、Cordova Android 3.7.2。(谷歌地图插件适用于 Cordova Android < 4。)
如果我尝试从 http 站点加载 file:///android_assets/www/cordova.js,chromium 会说Not allowed to load local resource。我尝试设置本地 URL 方案,但不知道将 Android 特定代码放在哪里。
这是制作混合应用程序的正确方法吗?是否有一个 cordova 插件允许从 http: 加载 file: ?
我还尝试使用 iframe 并传递消息来指示 cordova 已启用以及安装了哪些插件,但我不想让 http 服务器重新提供本地已可用的相同 js 文件。
我还想下载该网站并通过文件访问它:但我想尝试访问 http 资源时我也会遇到同样的问题。
小智 6
我可以cordova.js使用 cordova-plugin-file ( ) 插件在远程 html 上加载本地内容cdvfile://。
将 cordova-plugin-file 插件添加到您的 cordova 项目 https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/
确认 cdvfile URI 以cordova.js使用以下示例代码(Android 示例)
checkCordovaJSPath('file:///android_asset/www/cordova.js');
function checkCordovaJSPath(jsUri) {
window.resolveLocalFileSystemURL(jsUri, function success(fileEntry){
console.log("got cordova.js file: " + fileEntry.fullPath);
console.log('cordova.js cdvfile URI: ' + fileEntry.toInternalURL());
});
}Run Code Online (Sandbox Code Playgroud)
cordova.js使用加载。cdvfile://localhost<script type="text/javascript" src="cdvfile://localhost/assets/www/cordova.js"/>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4503 次 |
| 最近记录: |