1.0.11 • Published 2 years ago

dh-jsbridge v1.0.11

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

基础平台app javascript 调用app功能

调佣全部api 需要基础平台app版本>= 1.0.17

引入

Demo: https://e.coding.net/sjtech/h5-demo/H5Demo.git

使用:

// main.js 引入
import 'dh-jsbridge'

js 调用原生功能均通过全局对象dh来调用,所以尽可能避免其他同名的全局对象的污染。

打开新的窗口

dh.openNewWindow({
  url: 'http://...',
  title: '导航栏标题'
})

判断是否在app内打开

版本>=1.0.9

   const isInApp = dh.isDHApp()

获取app版本

版本>=1.0.9

    const version = dh.getAppVersion()

判断app版本是否大于某版本

版本>=1.0.9

 const res = dh.isVersionHigherThan('1.0.30')

打开在线附件

版本>=1.0.9 注意:该api 需要app 版本大于等于1.0.30,使用前因判断app版本

dh.openDocument({
  url: 'http://...'
})

用户信息

    dh.getUserInfo({
      success: data => {  // 返回的数据为json字符串
        this.userInfo = JSON.parse(data)
      }
     })

项目信息

    dh.getProjectInfo({
      success: (data = '') => { // 返回的数据为json字符串
        this.projectInfo = JSON.parse(data.replace(/\r|\n|\t/g, ''))
      }
    })

Token

token在网页打开时 已写入到cookie中,key为“Access-Token”

import Cookies from 'js-cookie'

const TOKEN_NAME = 'Access-Token'

export const getToken = () => {
  return Cookies.get(TOKEN_NAME)
}

导航

后退

dh.back()

退出

dh.finish()

修改导航栏标题

 dh.setNavigationBarTitle('修改后的标题')

文件下载

文件下载后可在app 个人》我的下载 查看

dh.downloadFile({
     src: this.url
})    

地图定位

获取定位(一次):

dh.getLocation()

持续定位

dh.startLocation(),

定位成功后会持续进行定位,定位更新时会触发以下回调:

window.onLocationChanged = (longitude, latitude) => {
     this.locationDesc = `${longitude},${latitude}`
}

全屏切换

显示或隐藏app 导航栏

dh.toggleFullScreen()

横竖屏切换

dh.lockLandscape(true) // true为切换横屏,false 竖屏

截屏

type 不能为空,为“full” 时是截取整个网页,其他值只截取当前屏幕。

dh.screenshot({ type : 'default' })

导出pdf

dh.printWeb()

扫一扫

dh.scanCode()

扫码回调

dh.scanForResult({
  success: res => {
    // res 为扫码结果
  }
})

录音

开始录音

dh.startRecord()

停止录音

dh.stopRecord()

停止录音后回调

window.onRecordFinish = path => {
      console.log(path) // path为原生app本地缓存路径
}

播放本地录音 src 必传,值为停止录音后回调获取的路径

dh.playVoice({ src: path })

分享

link必传 android 只支持单文本和单图片分享,所以android 分享时只会分享链接 iOS 图片如果不传可以在body最上方添加img,content 不传微信会读网页标题

dh.shareLink({
        content: '分享的文字!',
        image: 'http://81.70.223.108:9293/app/images/logo.png',
        link: window.location.href,
        success: () => {
          console.log('success')
        },
        error: () => {
          console.log('error')
        }
      })

用于iOS分享

<body>
  <div style="display:none;"><img src="http://81.70.223.108:9293/app/images/logo.png"></div>

快捷相机

快捷相机拍照后发起业务,用一下api获取上传后的图片

dh.getCameraImages({
        success: dataStr => {
          try {
            const Json = JSON.parse(dataStr)
            const images = Json.map(item => {
              return {
                id: item.id,
                name: item.fileName,
                previewUrl: `${item.url}onlinePreview?url=${encodeURIComponent(window.btoa(item.filePath))}&sourceFileUrl=${encodeURIComponent(item.sourceFileUrl)}`

              }
            })
            if (images && images.length) {
              this.$refs.form.setFormFieldValue({
                edit_pict_before: JSON.stringify(images)
              })
            }
          } catch (e) {
            console.error(e)
          }
        }
      })
1.0.9

2 years ago

1.0.8

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago