常见问题
为了更方便前端开发人员解决weex以及dolphinWeex相关问题,收集一些常见问题,持续更新:
1、weex如何获取页面高度
|
const { env } = weex.config
const sHeight = (env.deviceHeight / env.deviceWidth) * 750 // 单位为px
|
2、weex如何获取statusBar高度
|
statusBarHeight: function() {
let result = '20'
if (weex.config.env.statusBarHeight) {
if (weex.config.env.platform === 'iOS') {
result = weex.config.env.statusBarHeight
} else {
result = weex.config.env.statusBarHeight / weex.config.env.scale
}
}
let isIPhoneSE = weex.config.env.deviceModel.substr(6) === '12,8'
return (isIPhoneSE ? 20 : result) + 'wx'
}
|
3、weex如何引入字体包
|
使用addrule,具体可以参考
https://weexapp.com/zh/docs/modules/dom.html#addrule
|
4、美居打开小程序
|
weex容器或新H5容器代码示例 (商城、事业部H5默认是旧的H5容器,旧的H5容器调用方式在下一个demo):
import DolphinBridge from 'dolphin-native-bridge'
Vue.use(DolphinBridge)
export default{
methods: {
clickFn() {
this.$bridge.getAppInfo(res => {
let appVersion = res.appVersion
const versionList = appVersion.split('.')
//版本大于8.12,则使用openMiniProgram接口
if(versionList >= 2 && ( (versionList[0] == 8 && versionList[1] > 12) || versionList[0] > 8 )){
//文档暂未更新,只有这三个参数
this.$bridge.openMiniProgram({
miniProgramType: 0,//小程序版本类型, 默认为0。0-正式版,1-测试版,2-预览版
miniProgramUserName: 'ghxxxxxx',//小程序原始id,需要质询对应小程序开发查询
miniProgramPath: 'xxxxx',//小程序的路径
})
}else{
//这个URL由微信中控提供
this.$bridge.openURL('https://d.midea.com/d/DD4bKcfpdhw')
}
})
}
}
}
旧H5容器示例:
//1、在项目的html中引入文件
<script src="https://activity.msmartlife.cn/activity/common/js/iosbridge.min.js"></script>
//2、调用接口
window.mdSmartios.bridge.openWeb('https://d.midea.com/d/DD4bKcfpdhw')
|
5、jumpWeexPlugin是否支持跳转到插件的指定页面
|
routerModule.goToMeijuPage({
type: 'jumpWeexPlugin',
param: {
url: 'pages/device/gateway/check-update.js',
deviceId: this.gatewaySubDevice.masterId,
needNavi: '1'
}
})
更多路由跳转请参考:
https://dolphin-weex-dev.msmartlife.cn/relation/route-jump.html
|
6、”如果用户在插件的首页,此时设备断开了网络了,是否有离线推送的消息,告知插件页呢“
|
有相关的消息推送:
https://dolphin-weex-dev.msmartlife.cn/bridge/message/receiveMessageFromApp.html
|
7、”请问dof-modal 的 content ,可以设置左对齐吗?“
|
用插槽 slot="content" 的方式可以实现自定义样式
|
有相关的消息推送:
https://dolphin-weex-dev.msmartlife.cn/bridge/message/receiveMessageFromApp.html
|
8、”请问美居有接口提供给插件,获取用户是否有开这个权限吗?“
|
https://dolphin-weex-dev.msmartlife.cn/bridge/device/checkAndRequestPermission.html
|
9、”有内嵌的picker组件吗“
|
有内嵌的picker原生组件:
https://dolphin-weex-dev.msmartlife.cn/component/media-component/midea-picker.html
|
10、”想请教一下,首页设备列表的icon,有时候是具体型号的icon,有时候是通用的icon。 这个具体逻辑有哪位同事清楚?有没有需求文档什么的可以参考下?可以统一反馈给测试同事“
|
有”icon图片在是开发者平台有个专门页签改的,不是用产品上的图片“,具体修改入口 |
”APP内置组件 midea-seek-bar,安卓能左右滑动调音量大小,ios不行“
|
给组件加一个样式的高度,如:style="height: 80px"
|
12、”在weex页面内嵌了一个web标签, web标签打开的H5页面有什么方式可以传输消息到weex页面吗?“
|
使用postMessage进行通信
//只支持json字符串的参数,参数内容支持完全自定义。原生只负责转发,不关心json字符串参数的内容。
const andData = {data:{title:"来自html的数据"},origin:"123"}
//ios调用方式
window.webkit.messageHandlers.midea_bridge_weex.postMessage(data)
//android调用试
window.midea_bridge_weex.postMessage(JSON.stringify(andData))
//weex通过onMessage接收
<web
ref="webview"
:src="url"
@message="onMessage"
>
</web>
onMessage(data) {
if (!data) return
if (data.data.action == 'goBack') {
nativeService.goBack()
} else if (data.data.action == 'submit') {
nativeService.alert(data.data)
}
}
|
13、"有没有获取ios safeArea的方法?"
|
https://dolphin-weex-dev.msmartlife.cn/bridge/ui/getAllBarHeight.html
bottomArc字段
|
14、weex环境变量(weex.config.env)
|
// ios
bundleUrl // 当前页面地址
appEnv // app环境
appName // app名称
appVersion // app版本
versionCode // app版本编码
deviceHeight // 设备屏幕分辨率高度
deviceWidth // 设备屏幕分辨率宽度
deviceModel // 当前手机型号
isImmersion //是否沉浸式
layoutDirection // 布局方向
osName // 系统名称
osVersion // 系统版本
platform // 平台
scale
statusBarHeight // 顶部状态栏分辨率高度
weexVersion //weex版本
safeAreaBottomHeight : 安全区域底部高度
isFullScreen :是否是全面屏
// 安卓
bundleUrl // 当前页面地址
androidStatusBarHeight // 安卓状态栏高度
appEnv // app环境
appName // app名称
appVersion // app版本
cacheDir // 缓存地址
crashFilePath // app崩溃日志
deviceHeight // 设备屏幕分辨率高度
deviceWidth // 设备屏幕分辨率宽度
deviceModel // 当前手机型号
isImmersion //是否沉浸式
layoutDirection // 布局方向
options // 页面配置参数
|