提交 9692b151 编写于 作者: DCloud-WZF's avatar DCloud-WZF 💬

wip(uts): automator page.$ $$

上级 d5abaf41
......@@ -27,9 +27,9 @@ export const pageSetData = (params: SetDataParams): void => {
const page = getPageVm(pageId)
if (page !== null) {
setData(page, params.data)
callback({ result: { errMsg: 'setData: ok.' } })
callback({ result: { errMsg: 'Page.setData: ok.' } })
} else {
callback({ result: { errMsg: `setData:fail, Page:${pageId} is not found.` } })
callback({ result: { errMsg: `Page.setData:fail, Page:${pageId} is not found.` } })
}
}
export type CallMethodParams = {
......@@ -50,3 +50,40 @@ export const callMethod = (params: CallMethodParams): void => {
params.callback({result: {result}})
}
}
export type GetElementParams = {
pageId: number
selector: string
callback: (res?: any | null) => void
}
export const getElement = (params: GetElementParams): void => {
const page = getPageVm(params.pageId)
if (page === null) {
params.callback({ result: { errMsg: `Page[${params.pageId}] not exists` } })
} else {
const element = page.$querySelector(params.selector)
const result = {
elementId: element !== null ? element.id : null,
tagName: element !== null ? element.tagName : null
}
params.callback(result)
}
}
export const getElements = (params: GetElementParams): void => {
const page = getPageVm(params.pageId)
if (page === null) {
params.callback({ result: { errMsg: `Page[${params.pageId}] not exists` } })
} else {
const elements = page.$querySelectorAll(params.selector)
const result = [] as UTSJSONObject[]
elements?.forEach(element => {
result.push({
elementId: element.id,
tagName: element.tagName
})
})
params.callback({ elements: result })
}
}
......@@ -17,6 +17,9 @@ import {
SetDataParams,
CallMethodParams,
callMethod as pageCallMethod,
GetElementParams as PageGetElementParams,
getElement as pageGetElement,
getElements as pageGetElements,
} from './apis/Page.uts'
import { socketEmitter, SocketEmitterParams } from './apis/App/Socket.uts'
......@@ -89,6 +92,14 @@ function onMessage(msg: string) {
const args = ((params['args'] as UTSJSONObject).toJSONObject() as JSONArray).toUTSArray()
pageCallMethod({ pageId, method, args, callback } as CallMethodParams)
break
case 'Page.getElement':
const selector = params['selector'] as string
pageGetElement({ pageId, selector, callback } as PageGetElementParams)
break
case 'Page.getElements':
const selector = params['selector'] as string
pageGetElements({ pageId, selector, callback } as PageGetElementParams)
break
}
}
} catch (error) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册