config.xml
content 可以指向服务器地址, 实现远端实时更新, 不用把www打包进apk
服务器
<content src="http://192.168.50.17:9090" />
本地www/index.html文件
<content src="/index.html" />
content 如果为远端地址,需要将cordova.js 和 plugin等文件放到服务器,
cordova 就可以拥有直接调用本地android的能力, 与本地打包的方式一致
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link href="/iconfont/iconfont.css" rel="stylesheet"/>
<!-- 一些cordova操作函数 -->
<script type="text/javascript" src="index.js"></script>
<!-- cordova本体js -->
<script type="text/javascript" src="cordova.js"></script>
<!-- plugin不需要放入html引用, cordova会去请求plugin文件 -->
allow-navigation 为允许cordova webview的内部可跳转页面
如果设置为远端地址, 需要设置远端地址允许跳转,
<allow-navigation href="http://192.168.50.17:9090/*" />
cordova 调用系统浏览器下载, 取消下面的写法. 直接设置 a link 的 href,就可调用浏览器下载
<!-- 这样会拦截下载地址, 不会进入浏览器下载 -->
<allow-navigation href="*" />
cordova 调用自有插件,实现定制下载,
一定要禁用 a link 的 href, 不然不会调用下载
function onDeviceReady() {
window.open = cordova.InAppBrowser.open
cordova.InAppBrowser.open('http://apache.org', '_self', 'location=yes')
if (cordova.platformId == 'android') {
StatusBar.backgroundColorByHexString('#fff')
}
window.downLoadFile = downloadUrl => {
console.log(cordova.file)
let fileTransfer = new FileTransfer(),
uri = encodeURI(downloadUrl), // 文件的地址链接
fileUrl = cordova.file.externalDataDirectory + uri.substr(uri.lastIndexOf('/') + 1) // 文件的下载地址
fileTransfer.download(
uri,
fileUrl,
entry => {
entry.file(data => {
cordova.plugins.fileOpener2.showOpenWithDialog(fileUrl, data.type) // showOpenWithDialog使用手机上安装的程序打开下载的文件
})
console.log(
'download accessory successful. accessory information : ' + JSON.stringify(entry)
)
},
error => {
console.error('download accessory fail. Because of : ' + JSON.stringify(error))
}
)
// fileTransfer.onprogress = function(progressEvent) {
// // 加载过程中的loading提示
// const percentFinished = 99
// let downloadProgress = Math.round(
// (progressEvent.loaded / progressEvent.total) * $scope.percentage
// )
// $ionicLoading.show({
// template: '正在下载' + downloadProgress + '%',
// })
// downloadProgress > percentFinished && $ionicLoading.hide()
// }
// }
}
document.addEventListener('deviceready', onDeviceReady, false)
<Button
size="small"
// href={filepath}
style={{
background: '#fff',
color: '#108ee9',
}}
onClick={() => {
window.downLoadFile(filepath)
}}
>
下载PDF文件
</Button>
网友评论