Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
d294cce7
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d294cce7
编写于
9月 22, 2020
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev' into alpha
上级
826b5ba3
dadad203
变更
14
显示空白变更内容
内联
并排
Showing
14 changed file
with
132 addition
and
93 deletion
+132
-93
docs/api/ui/media-query-observer.md
docs/api/ui/media-query-observer.md
+105
-0
packages/uni-cli-shared/lib/util.js
packages/uni-cli-shared/lib/util.js
+3
-1
packages/webpack-uni-mp-loader/lib/plugin/generate-component.js
...es/webpack-uni-mp-loader/lib/plugin/generate-component.js
+2
-6
src/core/helpers/protocol/route/route.js
src/core/helpers/protocol/route/route.js
+1
-1
src/core/service/api/context/canvas.js
src/core/service/api/context/canvas.js
+6
-28
src/core/view/components/canvas/index.vue
src/core/view/components/canvas/index.vue
+0
-16
src/platforms/mp-alipay/runtime/api/protocols.js
src/platforms/mp-alipay/runtime/api/protocols.js
+1
-3
src/platforms/mp-baidu/runtime/api/protocols.js
src/platforms/mp-baidu/runtime/api/protocols.js
+2
-4
src/platforms/mp-kuaishou/runtime/api/protocols.js
src/platforms/mp-kuaishou/runtime/api/protocols.js
+1
-3
src/platforms/mp-qq/runtime/api/protocols.js
src/platforms/mp-qq/runtime/api/protocols.js
+1
-3
src/platforms/mp-toutiao/runtime/api/protocols.js
src/platforms/mp-toutiao/runtime/api/protocols.js
+5
-7
src/platforms/mp-weixin/helpers/create-canvas-context.js
src/platforms/mp-weixin/helpers/create-canvas-context.js
+0
-12
src/platforms/mp-weixin/runtime/api/protocols.js
src/platforms/mp-weixin/runtime/api/protocols.js
+4
-6
src/platforms/quickapp-webview/runtime/api/protocols.js
src/platforms/quickapp-webview/runtime/api/protocols.js
+1
-3
未找到文件。
docs/api/ui/media-query-observer.md
0 → 100644
浏览文件 @
d294cce7
MediaQueryObserver 对象,用于监听页面 media query 状态的变化,如界面的长宽是不是在某个指定的范围内。
### uni.createMediaQueryObserver([this])
创建并返回一个
``MediaQueryObserver``
对象实例。
**this说明:**
自定义组件实例。
**支付宝小程序不支持此参数,传入仅为抹平写法差异**
### MediaQueryObserver 对象的方法列表
|方法|说明|
|:-|:-|
|MediaQueryObserver.observe(Object descriptor, function callback)|开始监听页面 media query 变化情况|
|MediaQueryObserver.disconnect()|停止监听,回调函数将不再触发|
**observe 回调函数包含一个参数**
||类型|说明|
|:-|:-|:-|
|intersectionRatio|boolean|页面的当前状态是否满足所指定的 media query|
### 代码示例
```
<template>
<view class="content">
<view class="">
matches: {{matches}}
</view>
<view>
landscape: {{landscape}}
</view>
<button type="success" @click="remove">destroy</button>
</view>
</view>
</template>
<script>
let landscapeObs, interObs
export default {
data() {
return {
matches: false,
landscape: false,
}
},
onLoad() {
},
mounted() {
this.testMediaQueryObserver()
this.landscapeObserver()
},
methods: {
changeMinWidth() {
console.log("======= changeMinWidth ======")
var that = this
setTimeout(() => {
that.minWidth = 420
console.log("that.minwidth", that.minWidth)
}, 1000)
},
testMediaQueryObserver() {
this.mediaQueryOb = uni.createMediaQueryObserver(this)
this.mediaQueryOb.observe({
minWidth: 305,
maxWidth: 400,
orientation: 'portrait'
}, matches => {
console.log('######### matches #########', matches)
this.matches = matches;
})
console.log('########## create mediaQueryOb ###########', this.mediaQueryOb)
},
landscapeObserver() {
// console.log('--------- this----------', this)
landscapeObs = uni.createMediaQueryObserver(this)
landscapeObs.observe({
}, matches => {
this.landscape = matches
})
console.log('--------- landscapeObs -------', landscapeObs)
return landscapeObs
},
remove() {
this.mediaQueryOb.disconnect()
landscapeObs.disconnect()
console.log('########## destroy mediaQueryOb ###########', this.mediaQueryOb)
}
}
}
</script>
<style>
.content {
text-align: center;
height: 400upx;
}
</style>
```
packages/uni-cli-shared/lib/util.js
浏览文件 @
d294cce7
...
@@ -92,6 +92,8 @@ const NODE_MODULES_REGEX = /(\.\.\/)?node_modules/g
...
@@ -92,6 +92,8 @@ const NODE_MODULES_REGEX = /(\.\.\/)?node_modules/g
function
normalizeNodeModules
(
str
)
{
function
normalizeNodeModules
(
str
)
{
str
=
normalizePath
(
str
).
replace
(
NODE_MODULES_REGEX
,
'
node-modules
'
)
str
=
normalizePath
(
str
).
replace
(
NODE_MODULES_REGEX
,
'
node-modules
'
)
// HBuilderX 内置模块路径转换
str
=
str
.
replace
(
/.*HBuilderX
\/
plugins
\/
uniapp-cli
\/
node
[
-_
]
modules/
,
'
node-modules
'
)
if
(
process
.
env
.
UNI_PLATFORM
===
'
mp-alipay
'
)
{
if
(
process
.
env
.
UNI_PLATFORM
===
'
mp-alipay
'
)
{
str
=
str
.
replace
(
'
node-modules/@
'
,
'
node-modules/npm-scope-
'
)
str
=
str
.
replace
(
'
node-modules/@
'
,
'
node-modules/npm-scope-
'
)
}
}
...
...
packages/webpack-uni-mp-loader/lib/plugin/generate-component.js
浏览文件 @
d294cce7
...
@@ -89,11 +89,7 @@ module.exports = function generateComponent (compilation) {
...
@@ -89,11 +89,7 @@ module.exports = function generateComponent (compilation) {
let
resource
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
..
'
,
modulePath
))
let
resource
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
..
'
,
modulePath
))
const
altResource
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
modulePath
))
const
altResource
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
modulePath
))
if
(
if
(
modulePath
.
includes
(
'
@dcloudio
'
)
&&
isBuiltInComponentPath
(
modulePath
))
{
/^win/
.
test
(
process
.
platform
)
&&
modulePath
.
includes
(
'
@dcloudio
'
)
&&
isBuiltInComponentPath
(
modulePath
)
)
{
resource
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_CLI_CONTEXT
,
modulePath
))
resource
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_CLI_CONTEXT
,
modulePath
))
}
}
...
...
src/core/helpers/protocol/route/route.js
浏览文件 @
d294cce7
...
@@ -95,7 +95,7 @@ function createValidator (type) {
...
@@ -95,7 +95,7 @@ function createValidator (type) {
}
}
// 主要拦截目标为用户快速点击时触发的多次跳转,该情况,通常前后 url 是一样的
// 主要拦截目标为用户快速点击时触发的多次跳转,该情况,通常前后 url 是一样的
if
(
navigatorLock
===
url
)
{
if
(
navigatorLock
===
url
&&
params
.
openType
!==
'
appLaunch
'
)
{
return
`
${
navigatorLock
}
locked`
return
`
${
navigatorLock
}
locked`
}
}
// 至少 onLaunch 之后,再启用lock逻辑(onLaunch之前可能开发者手动调用路由API,来提前跳转)
// 至少 onLaunch 之后,再启用lock逻辑(onLaunch之前可能开发者手动调用路由API,来提前跳转)
...
...
src/core/service/api/context/canvas.js
浏览文件 @
d294cce7
...
@@ -328,38 +328,16 @@ export class CanvasContext {
...
@@ -328,38 +328,16 @@ export class CanvasContext {
}
}
}
}
measureText
(
text
,
callback
)
{
measureText
(
text
)
{
const
font
=
this
.
state
.
font
const
font
=
this
.
state
.
font
let
width
if
(
__PLATFORM__
===
'
h5
'
)
{
if
(
__PLATFORM__
===
'
h5
'
)
{
const
width
=
measureText
(
text
,
font
)
width
=
measureText
(
text
,
font
)
const
textMetrics
=
new
TextMetrics
(
width
)
if
(
typeof
callback
===
'
function
'
)
{
setTimeout
(()
=>
callback
(
textMetrics
),
0
)
}
return
textMetrics
}
else
{
let
textMetrics
=
new
TextMetrics
(
0
)
if
(
typeof
callback
===
'
function
'
)
{
const
callbackId
=
canvasEventCallbacks
.
push
(
function
({
width
})
{
callback
(
new
TextMetrics
(
width
))
})
operateCanvas
(
this
.
id
,
this
.
pageId
,
'
measureText
'
,
{
text
,
font
,
callbackId
})
}
else
{
}
else
{
const
webview
=
plus
.
webview
.
getWebviewById
(
String
(
this
.
pageId
))
const
webview
=
plus
.
webview
.
getWebviewById
(
String
(
this
.
pageId
))
if
(
webview
&&
webview
.
evalJSSync
)
{
width
=
webview
.
evalJSSync
(
`(
${
measureText
.
toString
()}
)(
${
JSON
.
stringify
(
text
)}
,
${
JSON
.
stringify
(
font
)}
)`
)
const
js
=
`(
${
measureText
.
toString
()}
)(
${
JSON
.
stringify
(
text
)}
,
${
JSON
.
stringify
(
font
)}
)`
const
width
=
webview
.
evalJSSync
(
js
)
||
0
textMetrics
=
new
TextMetrics
(
width
)
}
else
{
console
.
error
(
'
warning: measureText missing required arguments: callback
'
)
}
}
return
textMetrics
}
}
return
new
TextMetrics
(
width
)
}
}
save
()
{
save
()
{
...
...
src/core/view/components/canvas/index.vue
浏览文件 @
d294cce7
...
@@ -277,22 +277,6 @@ export default {
...
@@ -277,22 +277,6 @@ export default {
},
this
.
$page
.
id
)
},
this
.
$page
.
id
)
}
}
},
},
measureText
({
text
,
font
,
callbackId
})
{
const
canvas
=
getTempCanvas
()
const
c2d
=
canvas
.
getContext
(
'
2d
'
)
c2d
.
font
=
font
UniViewJSBridge
.
publishHandler
(
'
onCanvasMethodCallback
'
,
{
callbackId
,
data
:
{
errMsg
:
'
measureText:ok
'
,
width
:
c2d
.
measureText
(
text
).
width
||
0
}
},
this
.
$page
.
id
)
},
preloadImage
:
function
(
actions
)
{
preloadImage
:
function
(
actions
)
{
var
self
=
this
var
self
=
this
actions
.
forEach
(
function
(
action
)
{
actions
.
forEach
(
function
(
action
)
{
...
...
src/platforms/mp-alipay/runtime/api/protocols.js
浏览文件 @
d294cce7
...
@@ -3,7 +3,6 @@ import {
...
@@ -3,7 +3,6 @@ import {
}
from
'
uni-shared
'
}
from
'
uni-shared
'
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
createCanvasContext
from
'
../../../mp-weixin/helpers/create-canvas-context
'
// 不支持的 API 列表
// 不支持的 API 列表
const
todos
=
[
const
todos
=
[
...
@@ -478,8 +477,7 @@ const protocols = { // 需要做转换的 API 列表
...
@@ -478,8 +477,7 @@ const protocols = { // 需要做转换的 API 列表
result
.
telNumber
=
info
.
mobilePhone
result
.
telNumber
=
info
.
mobilePhone
result
.
errMsg
=
result
.
resultStatus
result
.
errMsg
=
result
.
resultStatus
}
}
},
}
createCanvasContext
}
}
export
{
export
{
...
...
src/platforms/mp-baidu/runtime/api/protocols.js
浏览文件 @
d294cce7
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
createCanvasContext
from
'
../../../mp-weixin/helpers/create-canvas-context
'
// 不支持的 API 列表
// 不支持的 API 列表
const
todos
=
[
const
todos
=
[
...
@@ -120,8 +119,7 @@ const protocols = {
...
@@ -120,8 +119,7 @@ const protocols = {
getAccountInfoSync
:
{
getAccountInfoSync
:
{
name
:
'
getEnvInfoSync
'
,
name
:
'
getEnvInfoSync
'
,
returnValue
:
_handleEnvInfo
returnValue
:
_handleEnvInfo
},
}
createCanvasContext
}
}
export
{
export
{
...
...
src/platforms/mp-kuaishou/runtime/api/protocols.js
浏览文件 @
d294cce7
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
createCanvasContext
from
'
../../../mp-weixin/helpers/create-canvas-context
'
export
const
protocols
=
{
export
const
protocols
=
{
navigateTo
,
navigateTo
,
redirectTo
,
redirectTo
,
previewImage
,
previewImage
createCanvasContext
}
}
export
const
todos
=
[
export
const
todos
=
[
'
vibrate
'
'
vibrate
'
...
...
src/platforms/mp-qq/runtime/api/protocols.js
浏览文件 @
d294cce7
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
createCanvasContext
from
'
../../../mp-weixin/helpers/create-canvas-context
'
export
const
protocols
=
{
export
const
protocols
=
{
navigateTo
,
navigateTo
,
redirectTo
,
redirectTo
,
previewImage
,
previewImage
createCanvasContext
}
}
export
const
todos
=
[
export
const
todos
=
[
'
preloadPage
'
,
'
preloadPage
'
,
...
...
src/platforms/mp-toutiao/runtime/api/protocols.js
浏览文件 @
d294cce7
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
createCanvasContext
from
'
../../../mp-weixin/helpers/create-canvas-context
'
// 不支持的 API 列表
// 不支持的 API 列表
const
todos
=
[
const
todos
=
[
...
@@ -170,8 +169,7 @@ const protocols = {
...
@@ -170,8 +169,7 @@ const protocols = {
args
:
{
args
:
{
digestAlgorithm
:
false
digestAlgorithm
:
false
}
}
},
}
createCanvasContext
}
}
export
{
export
{
...
...
src/platforms/mp-weixin/helpers/create-canvas-context.js
已删除
100644 → 0
浏览文件 @
826b5ba3
export
default
{
returnValue
(
fromRes
,
toRes
)
{
const
measureText
=
fromRes
.
measureText
toRes
.
measureText
=
function
(
text
,
callback
)
{
const
textMetrics
=
measureText
.
call
(
this
,
text
)
if
(
typeof
callback
===
'
function
'
)
{
setTimeout
(()
=>
callback
(
textMetrics
),
0
)
}
return
textMetrics
}
}
}
src/platforms/mp-weixin/runtime/api/protocols.js
浏览文件 @
d294cce7
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
redirectTo
from
'
../../helpers/redirect-to
'
import
redirectTo
from
'
../../helpers/redirect-to
'
import
previewImage
from
'
../../helpers/normalize-preview-image
'
import
previewImage
from
'
../../helpers/normalize-preview-image
'
import
createCanvasContext
from
'
../../helpers/create-canvas-context
'
function
addSafeAreaInsets
(
result
)
{
function
addSafeAreaInsets
(
result
)
{
if
(
result
.
safeArea
)
{
if
(
result
.
safeArea
)
{
...
@@ -23,8 +22,7 @@ export const protocols = {
...
@@ -23,8 +22,7 @@ export const protocols = {
},
},
getSystemInfoSync
:
{
getSystemInfoSync
:
{
returnValue
:
addSafeAreaInsets
returnValue
:
addSafeAreaInsets
},
}
createCanvasContext
}
}
export
const
todos
=
[
export
const
todos
=
[
'
vibrate
'
,
'
vibrate
'
,
...
...
src/platforms/quickapp-webview/runtime/api/protocols.js
浏览文件 @
d294cce7
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
navigateTo
from
'
uni-helpers/navigate-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
redirectTo
from
'
../../../mp-weixin/helpers/redirect-to
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
previewImage
from
'
../../../mp-weixin/helpers/normalize-preview-image
'
import
createCanvasContext
from
'
../../../mp-weixin/helpers/create-canvas-context
'
export
const
protocols
=
{
export
const
protocols
=
{
navigateTo
,
navigateTo
,
redirectTo
,
redirectTo
,
previewImage
,
previewImage
createCanvasContext
}
}
export
const
todos
=
[
export
const
todos
=
[
'
preloadPage
'
,
'
preloadPage
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录