美文网首页
cordova笔记

cordova笔记

作者: A_1341 | 来源:发表于2018-11-29 20:10 被阅读0次

    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>
    

    相关文章

      网友评论

          本文标题:cordova笔记

          本文链接:https://www.haomeiwen.com/subject/udcqcqtx.html