提交 97a3d8e2 编写于 作者: Q qiang

Merge branch 'dev' into alpha

# Conflicts:
#	packages/uni-h5/dist/index.umd.min.js
......@@ -579,6 +579,14 @@ var getSystemInfo = {
}
};
var showActionSheet = {
args (fromArgs) {
if (typeof fromArgs === 'object') {
fromArgs.alertText = fromArgs.title;
}
}
};
// import navigateTo from 'uni-helpers/navigate-to'
const protocols = {
......@@ -586,7 +594,8 @@ const protocols = {
// navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP
previewImage,
getSystemInfo,
getSystemInfoSync: getSystemInfo
getSystemInfoSync: getSystemInfo,
showActionSheet
};
const todos = [
'vibrate',
......
......@@ -797,6 +797,16 @@ describe('mp:compiler-extra', () => {
'<block wx:if="{{$root.m0}}"><view>{{$root.m1}}</view></block>',
'with(this){var m0=test1(key)&&test2(key);var m1=m0?getValue(key):null;$mp.data=Object.assign({},{$root:{m0:m0,m1:m1}})}'
)
assertCodegen(
'<view v-if="test.test(key)&&test2(key)">{{getValue(key)}}</view>',
'<block wx:if="{{$root.g0}}"><view>{{$root.m0}}</view></block>',
'with(this){var g0=test.test(key)&&test2(key);var m0=g0?getValue(key):null;$mp.data=Object.assign({},{$root:{g0:g0,m0:m0}})}'
)
assertCodegen(
'<view v-if="show"><view v-if="test.test(key)&&test2(key)">{{getValue(key)}}</view></view>',
'<block wx:if="{{show}}"><view><block wx:if="{{$root.g0}}"><view>{{$root.m0}}</view></block></view></block>',
'with(this){var g0=show?test.test(key)&&test2(key):null;var m0=show&&g0?getValue(key):null;$mp.data=Object.assign({},{$root:{g0:g0,m0:m0}})}'
)
assertCodegen(
'<view v-for="(item,index) in list" :key="index"><view v-if="item">{{getValue(item)}}</view></view>',
'<block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view><block wx:if="{{item.$orig}}"><view>{{item.m0}}</view></block></view></block>',
......
......@@ -251,6 +251,11 @@ module.exports = {
t.isMemberExpression(callee) // message.split('').reverse().join('')
) {
// Object.assign...
path = path.findParent((path) => path.isLogicalExpression()) || path
path.skip()
if (path.findParent((path) => path.shouldSkip)) {
return
}
path.replaceWith(getMemberExpr(path, IDENTIFIER_GLOBAL, path.node, this))
}
},
......
const path = require('path')
const t = require('@babel/types')
const babelTraverse = require('@babel/traverse').default
const {
normalizePath
} = require('@dcloudio/uni-cli-shared')
const {
parseComponents
} = require('./util')
......@@ -58,7 +55,7 @@ module.exports = function (ast, state = {}) {
}
} catch (e) {
if (state.filename) {
console.error('at ' + normalizePath(path.relative(process.env.UNI_INPUT_DIR, state.filename)) + ':1')
console.error('at ' + require('@dcloudio/uni-cli-shared').normalizePath(path.relative(process.env.UNI_INPUT_DIR, state.filename)) + ':1')
}
throw e
}
......
const path = require('path')
const t = require('@babel/types')
const babelTraverse = require('@babel/traverse').default
const {
normalizePath
} = require('@dcloudio/uni-cli-shared')
const {
parseComponents
} = require('./util')
......@@ -185,7 +182,7 @@ module.exports = function (ast, state = {
})
} catch (e) {
if (state.filename) {
console.error('at ' + normalizePath(path.relative(process.env.UNI_INPUT_DIR, state.filename)) + ':1')
console.error('at ' + require('@dcloudio/uni-cli-shared').normalizePath(path.relative(process.env.UNI_INPUT_DIR, state.filename)) + ':1')
}
throw e
}
......
......@@ -70,6 +70,11 @@ const props = [
name: 'protocol',
readonly: true,
default: 'http'
},
{
name: 'playbackRate',
default: 1,
cache: true
}
]
......@@ -114,7 +119,7 @@ class BackgroundAudioManager {
this._options[name] = value
invokeMethod('setBackgroundAudioState', Object.assign({}, this._options, {
audioId: this.id
}))
}), name)
}
}
Object.defineProperty(this, name, data)
......
......@@ -63,6 +63,10 @@ const props = [
},
{
name: 'sessionCategory'
},
{
name: 'playbackRate',
cache: true
}
]
......
......@@ -86,9 +86,16 @@ function stopTimeUpdateTimer () {
}
}
function setMusicState (args) {
function setMusicState (args, name) {
initMusic()
const props = ['src', 'startTime', 'coverImgUrl', 'webUrl', 'singer', 'epname', 'title']
if (name && name === 'playbackRate') {
const val = args[name]
audio.playbackRate && audio.playbackRate(parseFloat(val))
return
}
const style = {}
Object.keys(args).forEach(key => {
if (props.indexOf(key) >= 0) {
......@@ -150,8 +157,8 @@ export function operateMusicPlayer ({
errMsg: `${api}:ok`
}
}
export function setBackgroundAudioState (args) {
setMusicState(args)
export function setBackgroundAudioState (args, name) {
setMusicState(args, name)
return {
errMsg: 'setBackgroundAudioState:ok'
}
......
......@@ -82,7 +82,8 @@ export function setAudioState ({
loop = false,
obeyMuteSwitch,
volume,
sessionCategory = AUDIO_DEFAULT_SESSION_CATEGORY
sessionCategory = AUDIO_DEFAULT_SESSION_CATEGORY,
playbackRate
}) {
const audio = audios[audioId]
if (audio) {
......@@ -91,7 +92,9 @@ export function setAudioState ({
autoplay
}
if (src) {
audio.src = style.src = getRealPath(src)
// iOS 设置 src 会重新播放
const realSrc = getRealPath(src)
if (audio.src !== realSrc) audio.src = style.src = realSrc
}
if (startTime) {
audio.startTime = style.startTime = startTime
......@@ -103,6 +106,9 @@ export function setAudioState ({
if (sessionCategory) {
audio.setSessionCategory(sessionCategory)
}
if (playbackRate && audio.playbackRate) {
audio.playbackRate(playbackRate)
}
initStateChage(audioId)
}
return {
......
export default {
args (fromArgs) {
if (typeof fromArgs === 'object') {
fromArgs.alertText = fromArgs.title
}
}
}
......@@ -2,13 +2,15 @@
import redirectTo from '../../helpers/redirect-to'
import previewImage from '../../helpers/normalize-preview-image'
import getSystemInfo from '../../helpers/system-info'
import showActionSheet from '../../helpers/show-action-sheet'
export const protocols = {
redirectTo,
// navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP
previewImage,
getSystemInfo,
getSystemInfoSync: getSystemInfo
getSystemInfoSync: getSystemInfo,
showActionSheet
}
export const todos = [
'vibrate',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册