# 常见问题

为了更方便前端开发人员解决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 // 页面配置参数
Last Updated: 5/19/2023, 10:58:01 AM