cordova笔记

config.xml

content 可以指向服务器地址, 实现远端实时更新, 不用把www打包进apk

服务器

本地www/index.html文件

content 如果为远端地址,需要将cordova.js 和 plugin等文件放到服务器,
cordova 就可以拥有直接调用本地android的能力, 与本地打包的方式一致

  
  

  

  

allow-navigation 为允许cordova webview的内部可跳转页面
如果设置为远端地址, 需要设置远端地址允许跳转,


cordova 调用系统浏览器下载, 取消下面的写法. 直接设置 a link 的 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)
        

你可能感兴趣的:(cordova笔记)