提交 cce3cf15 编写于 作者: Q qiang

Merge branch 'dev' into alpha

......@@ -224,7 +224,8 @@ const third = [
]
const ad = [
'createRewardedVideoAd'
'createRewardedVideoAd',
'createFullScreenVideoAd'
]
const apis = [
......
......@@ -216,6 +216,7 @@
"name": "ad",
"title": "广告",
"apiList": {
"uni.createRewardedVideoAd": true
"uni.createRewardedVideoAd": true,
"uni.createFullScreenVideoAd": true
}
}]
......@@ -309,7 +309,14 @@ export default {
*/
function loadFile (path) {
function onError () {
image.src = src
const bitmap = new plus.nativeObj.Bitmap(`bitmap_${Date.now()}_${Math.random()}}`)
bitmap.load(path, function () {
image.src = bitmap.toBase64Data()
bitmap.clear()
}, function () {
bitmap.clear()
image.src = src
})
}
plus.io.resolveLocalFileSystemURL(path, function (entry) {
entry.file(function (file) {
......
const eventNames = [
'load',
'close',
'error'
]
class FullScreenVideoAd {
constructor (options = {}) {
const _callbacks = this._callbacks = {}
eventNames.forEach(item => {
_callbacks[item] = []
const name = item[0].toUpperCase() + item.substr(1)
this[`on${name}`] = function (callback) {
_callbacks[item].push(callback)
}
})
this._isLoad = false
this._adError = ''
this._loadPromiseResolve = null
this._loadPromiseReject = null
this._lastLoadTime = 0
const ad = this._ad = plus.ad.createFullScreenVideoAd(options)
ad.onLoad((e) => {
this._isLoad = true
this._lastLoadTime = Date.now()
this._dispatchEvent('load', {})
if (this._loadPromiseResolve != null) {
this._loadPromiseResolve()
this._loadPromiseResolve = null
}
})
ad.onClose((e) => {
this._isLoad = false
this._dispatchEvent('close', { isEnded: e.isEnded })
})
ad.onError((e) => {
const { code, message } = e
const data = { code: code, errMsg: message }
this._adError = message
if (code === -5008) {
this._isLoad = false
}
this._dispatchEvent('error', data)
if (this._loadPromiseReject != null) {
this._loadPromiseReject(data)
this._loadPromiseReject = null
}
})
}
load () {
return new Promise((resolve, reject) => {
if (this._isLoad) {
resolve()
return
}
this._loadPromiseResolve = resolve
this._loadPromiseReject = reject
this._loadAd()
})
}
show () {
return new Promise((resolve, reject) => {
if (this._isLoad) {
this._ad.show()
resolve()
} else {
reject(new Error(this._adError))
}
})
}
getProvider () {
return this._ad.getProvider()
}
destroy () {
this._ad.destroy()
}
_loadAd () {
this._isLoad = false
this._ad.load()
}
_dispatchEvent (name, data) {
this._callbacks[name].forEach(callback => {
if (typeof callback === 'function') {
callback(data || {})
}
})
}
}
export function createFullScreenVideoAd (options) {
return new FullScreenVideoAd(options)
}
......@@ -3,10 +3,10 @@ import {
warpPlusMethod
} from '../util'
export const onBluetoothDeviceFound = warpPlusEvent(plus.bluetooth, 'onBluetoothDeviceFound')
export const onBluetoothAdapterStateChange = warpPlusEvent(plus.bluetooth, 'onBluetoothAdapterStateChange')
export const onBLEConnectionStateChange = warpPlusEvent(plus.bluetooth, 'onBLEConnectionStateChange')
export const onBLECharacteristicValueChange = warpPlusEvent(plus.bluetooth, 'onBLECharacteristicValueChange')
export const onBluetoothDeviceFound = warpPlusEvent('bluetooth', 'onBluetoothDeviceFound')
export const onBluetoothAdapterStateChange = warpPlusEvent('bluetooth', 'onBluetoothAdapterStateChange')
export const onBLEConnectionStateChange = warpPlusEvent('bluetooth', 'onBLEConnectionStateChange')
export const onBLECharacteristicValueChange = warpPlusEvent('bluetooth', 'onBLECharacteristicValueChange')
function toUpperCase (options = {}) {
const deviceId = options.deviceId
......@@ -20,19 +20,19 @@ function toUpperCase (options = {}) {
return options
}
export const openBluetoothAdapter = warpPlusMethod(plus.bluetooth, 'openBluetoothAdapter')
export const closeBluetoothAdapter = warpPlusMethod(plus.bluetooth, 'closeBluetoothAdapter')
export const getBluetoothAdapterState = warpPlusMethod(plus.bluetooth, 'getBluetoothAdapterState')
export const startBluetoothDevicesDiscovery = warpPlusMethod(plus.bluetooth, 'startBluetoothDevicesDiscovery', toUpperCase)
export const stopBluetoothDevicesDiscovery = warpPlusMethod(plus.bluetooth, 'stopBluetoothDevicesDiscovery')
export const getBluetoothDevices = warpPlusMethod(plus.bluetooth, 'getBluetoothDevices')
export const getConnectedBluetoothDevices = warpPlusMethod(plus.bluetooth, 'getConnectedBluetoothDevices', toUpperCase)
export const createBLEConnection = warpPlusMethod(plus.bluetooth, 'createBLEConnection', toUpperCase)
export const closeBLEConnection = warpPlusMethod(plus.bluetooth, 'closeBLEConnection', toUpperCase)
export const getBLEDeviceServices = warpPlusMethod(plus.bluetooth, 'getBLEDeviceServices', toUpperCase)
export const getBLEDeviceCharacteristics = warpPlusMethod(plus.bluetooth, 'getBLEDeviceCharacteristics', toUpperCase)
export const notifyBLECharacteristicValueChange = warpPlusMethod(plus.bluetooth, 'notifyBLECharacteristicValueChange', toUpperCase)
export const readBLECharacteristicValue = warpPlusMethod(plus.bluetooth, 'readBLECharacteristicValue', toUpperCase)
export const writeBLECharacteristicValue = warpPlusMethod(plus.bluetooth, 'writeBLECharacteristicValue', toUpperCase)
export const setBLEMTU = warpPlusMethod(plus.bluetooth, 'setBLEMTU', toUpperCase)
export const getBLEDeviceRSSI = warpPlusMethod(plus.bluetooth, 'getBLEDeviceRSSI', toUpperCase)
export const openBluetoothAdapter = warpPlusMethod('bluetooth', 'openBluetoothAdapter')
export const closeBluetoothAdapter = warpPlusMethod('bluetooth', 'closeBluetoothAdapter')
export const getBluetoothAdapterState = warpPlusMethod('bluetooth', 'getBluetoothAdapterState')
export const startBluetoothDevicesDiscovery = warpPlusMethod('bluetooth', 'startBluetoothDevicesDiscovery', toUpperCase)
export const stopBluetoothDevicesDiscovery = warpPlusMethod('bluetooth', 'stopBluetoothDevicesDiscovery')
export const getBluetoothDevices = warpPlusMethod('bluetooth', 'getBluetoothDevices')
export const getConnectedBluetoothDevices = warpPlusMethod('bluetooth', 'getConnectedBluetoothDevices', toUpperCase)
export const createBLEConnection = warpPlusMethod('bluetooth', 'createBLEConnection', toUpperCase)
export const closeBLEConnection = warpPlusMethod('bluetooth', 'closeBLEConnection', toUpperCase)
export const getBLEDeviceServices = warpPlusMethod('bluetooth', 'getBLEDeviceServices', toUpperCase)
export const getBLEDeviceCharacteristics = warpPlusMethod('bluetooth', 'getBLEDeviceCharacteristics', toUpperCase)
export const notifyBLECharacteristicValueChange = warpPlusMethod('bluetooth', 'notifyBLECharacteristicValueChange', toUpperCase)
export const readBLECharacteristicValue = warpPlusMethod('bluetooth', 'readBLECharacteristicValue', toUpperCase)
export const writeBLECharacteristicValue = warpPlusMethod('bluetooth', 'writeBLECharacteristicValue', toUpperCase)
export const setBLEMTU = warpPlusMethod('bluetooth', 'setBLEMTU', toUpperCase)
export const getBLEDeviceRSSI = warpPlusMethod('bluetooth', 'getBLEDeviceRSSI', toUpperCase)
......@@ -3,9 +3,9 @@ import {
warpPlusMethod
} from '../util'
export const onBeaconUpdate = warpPlusEvent(plus.ibeacon, 'onBeaconUpdate')
export const onBeaconServiceChange = warpPlusEvent(plus.ibeacon, 'onBeaconServiceChange')
export const onBeaconUpdate = warpPlusEvent('ibeacon', 'onBeaconUpdate')
export const onBeaconServiceChange = warpPlusEvent('ibeacon', 'onBeaconServiceChange')
export const getBeacons = warpPlusMethod(plus.ibeacon, 'getBeacons')
export const startBeaconDiscovery = warpPlusMethod(plus.ibeacon, 'startBeaconDiscovery')
export const stopBeaconDiscovery = warpPlusMethod(plus.ibeacon, 'stopBeaconDiscovery')
export const getBeacons = warpPlusMethod('ibeacon', 'getBeacons')
export const startBeaconDiscovery = warpPlusMethod('ibeacon', 'startBeaconDiscovery')
export const stopBeaconDiscovery = warpPlusMethod('ibeacon', 'stopBeaconDiscovery')
import {
TEMP_PATH
} from '../constants'
import {
getStatusBarStyle
} from '../util'
......@@ -115,7 +119,9 @@ export function scanCode ({
}
}, {
multiple: false,
system: false
system: false,
filename: TEMP_PATH + '/gallery/',
permissionAlert: true
})
}
})
......
......@@ -74,7 +74,7 @@ export function getSavedFileList (options, callbackId) {
}, errorCallback)
}
export const getFileInfo = warpPlusMethod(plus.io, 'getFileInfo')
export const getFileInfo = warpPlusMethod('io', 'getFileInfo')
export function getSavedFileInfo ({
filePath
......
......@@ -77,3 +77,4 @@ export * from './ui/tab-bar'
export * from './ui/request-component-info'
export * from './ad/rewarded-video-ad'
export * from './ad/full-screen-video-ad'
......@@ -98,7 +98,8 @@ export function chooseImage ({
maximum: count,
multiple: true,
system: false,
filename: TEMP_PATH + '/gallery/'
filename: TEMP_PATH + '/gallery/',
permissionAlert: true
})
}
......
......@@ -39,7 +39,8 @@ export function chooseVideo ({
plus.gallery.pick(successCallback, errorCallback, {
filter: 'video',
system: false,
filename: TEMP_PATH + '/gallery/'
filename: TEMP_PATH + '/gallery/',
permissionAlert: true
})
}
......
......@@ -2,4 +2,4 @@ import {
warpPlusMethod
} from '../util'
export const getImageInfo = warpPlusMethod(plus.io, 'getImageInfo')
export const getImageInfo = warpPlusMethod('io', 'getImageInfo')
......@@ -4,7 +4,8 @@ import {
export {
isTabBarPage
} from '../bridge'
}
from '../bridge'
export function callApiSync (api, args, name, alias) {
const ret = api(args)
......@@ -155,16 +156,19 @@ const outOfChina = function (lng, lat) {
}
export function getScreenInfo () {
const { resolutionWidth, resolutionHeight } = plus.screen.getCurrentSize()
const {
resolutionWidth,
resolutionHeight
} = plus.screen.getCurrentSize()
return {
screenWidth: Math.round(resolutionWidth),
screenHeight: Math.round(resolutionHeight)
}
}
export function warpPlusEvent (origin, name) {
export function warpPlusEvent (module, name) {
return function (callbackId) {
origin[name](function (data) {
plus[module][name](function (data) {
if (data) {
delete data.code
delete data.message
......@@ -184,12 +188,12 @@ export function warpPlusErrorCallback (callbackId, neme, errMsg) {
}
}
export function warpPlusMethod (origin, name, before) {
export function warpPlusMethod (module, name, before) {
return function (options, callbackId) {
if (typeof before === 'function') {
options = before(options)
}
origin[name](Object.assign(options, {
plus[module][name](Object.assign(options, {
success (data = {}) {
delete data.code
delete data.message
......@@ -210,4 +214,4 @@ export function getFileName (path) {
export function getExtName (path) {
const array = path.split('.')
return array.length > 1 ? '.' + array[array.length - 1] : ''
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册