关于我在 uniapp 开发过程中遇到的问题(更新中...)

目录

一、uniapp 勾选自带的隐私政策 出现的问题

二、是否忽略版本兼容检查提示

三、勾选了uniapp的消息推送 打包后弹出提示框

四、关于uniapp的真机调试 一直等待问题 或者 正在建立链接

五、在uniapp 页面中不显示滚动条

六、控制手机音量键 + - 触发相对用的方法

七、关于请求数据 在电脑端正常请求,但是真机调试到手机上后请求失败原因与解决方法 

八、顶部状态栏的占位 height: var(--status-bar-height);

九、视频组件层级太高 使用nVue解决

十、条件编译

十一、禁用,安卓系统上的物理键返回 

十二、在APP 端禁止触摸 某一个区域 

十三、获取软键盘弹起的高度(APP 端)

十四、uniapp 软键盘弹起 把布局顶上面去了,解决方法 

十五、手机屏幕常亮

(小知识)


一、uniapp 勾选自带的隐私政策 出现的问题

勾选自动隐私政策后 会在根目录下出现一个androidPrivacy.json文件 一下是里面的内容 一开始可能 只会有 "version" : "1" 

{
  "version": "1",
  "prompt": "template",
  "title": "服务协议和隐私政策",
  "message": "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"https://gaoying@fumobile.com/protocol.html\">《服务协议》</a>和<a href=\"https:\\www.0594.com/html/about/private\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
  "buttonAccept": "同意并接受",
  "buttonRefuse": "暂不同意",
  "hrefLoader": "system",
  "backToExit":"false",
  "second": {
    "title": "确认提示",
    "message": "  进入应用前,你需先同意<a href=\"\">《服务协议》</a>和<a href=\"https:\/\/www.0594.com\/html\/about\/private\/\">《隐私政策》</a>,否则将退出应用。",
    "buttonAccept": "同意并继续",
    "buttonRefuse": "退出应用"
  },
  "disagreeMode":{
    "support": false,
    "loadNativePlugins": false,
    "visitorEntry": false,
    "showAlways": false
  },
  "styles": {
    "backgroundColor": "#ffffff",
    "borderRadius":"5px",
    "title": {
      "color": "#000000"
    },
    "buttonAccept": {
      "color": "#55aaff"
    },
    "buttonRefuse": {
      "color": "#ff0000"
    },
    "buttonVisitor": {
      "color": "#00ffff"
    }
  }
}

一、关闭自带的隐私政策 在manifest.json 源码视图 中找到 "app-puls" 里面添加

        "privacy" : {  //关闭自带隐私政策
                    "prompt" : "none"
          },

隐私政策里的 超链接写法 搞了好久原来是写错位置了 我说为什么一直不跳转 马虎了 

<a href=\"https:\\www.0594.com/html/about/private\">《隐私政策》</a>

二、是否忽略版本兼容检查提示

打完包后 以为可以正常运行 没想到 刚打开App 就弹出一个框 

解决方法:在manifest.json 源码视图 中找到 "app-puls" 里面添加

"compatible" : {
           "ignoreVersion" : true //可选,Boolean类型,是否忽略版本兼容检查提示
    },

三、勾选了uniapp的消息推送 打包后弹出提示框

这个问题是我在勾选消息推送后 并没有使用 所以报错 后来关闭了消息推送还是报错

原因是虽然关闭了消息推送但是 在manifest.json  源码视图里 "app-puls" 中依然有关于推送的信息,找到push:{}

push:{
            //什么东西
    }

删除这个push:{} 重新运行打包就不会报错了!

四、关于uniapp的真机调试 一直等待问题 或者 正在建立链接

一般情况下不会出现这种问题 我当时在频繁修改 调试的时候出现 解决原因有 重启HBuilder,

或者换一个usb插口 我就是换了一个插口usb3.0的 还有就是看看有没有链接成功 ,或者删除原来手机上的包让他重新下载

五、在uniapp 页面中不显示滚动条

一般在使用scroll-view和overflow-y/x: auto;的时候都会出现一个灰色的滚动条,可以在pages.json里面添加 "scrollIndicator": "none", 隐藏滚动条

六、控制手机音量键 + - 触发相对用的方法

//进入页面是监听音量键

onShow() {
   plus.key.addEventListener('volumeupbutton', this.handleVolumeUp);
   plus.key.addEventListener('volumedownbutton', this.handleVolumeDown);
},

 // 在页面隐藏的时候移除监听

onHide() { 
   plus.key.removeEventListener('volumeup', this.handleVolumeUp);
   plus.key.removeEventListener('volumedown', this.handleVolumeDown); 
},

       handleVolumeUp() {
                  // 音量增大时的处理逻辑
                  console.log('音量键+被按下');
            },
       handleVolumeDown() {
                  // 音量减小时的处理逻辑
                  console.log('音量键-被按下');
            },

七、关于请求数据 在电脑端正常请求,但是真机调试到手机上后请求失败原因与解决方法 

在根目录下创建一个setting.js文件  把下面的代码复制到里面即可

export default {
    url:'http://musicapp.qifu100.com/api/index',
}
 

这个原因是我在本地服务器请求,所以到真机调试手机上就显示数据请求失败 把请求路径改为 自己的ip地址而且 电脑要跟手机链接同一个wifi,查看电脑ip的命令ipconfig。

// url:'http://192.168.0.120:3000',
    // url: 'http://localhost:3000'
    //localhost、127.0.0.1等服务器地址,只能在电脑端运行,手机端连接时不能访问。
    //手机跟电脑连同一wifi(电脑和手机在同一个网络环境),然后访问地址用内网ip,电脑cmd,输入ipconfig查看内网ip,ipv4 

八、顶部状态栏的占位 height: var(--status-bar-height);

<template>
  <view>
      <view class="status_bar">
          <!-- 这里是状态栏 -->
      </view>
      <view> 状态栏下的文字 </view>
  </view>
</template>    
<style>
  .status_bar {
      height: var(--status-bar-height);
      width: 100%;
  }
</style>

九、视频组件层级太高 使用nVue解决

详细解决方案请看:uniapp视频组件层级太高,解决方法使用subNvue原生子体窗口_uniapp视频组件会在最上层-CSDN博客

十、条件编译

1、仅出现在 App 平台下的代码
#ifdef APP-PLUS
需条件编译的代码
#endif
2、除了 H5 平台,其它平台均存在的代码(注意if后面有个n)
#ifndef H5
需条件编译的代码
#endif
3、在 H5 平台或微信小程序平台存在的代码(这里只有||,不可能出现&&,因为没有交集)
#ifdef H5 || MP-WEIXIN
需条件编译的代码
#endif

十一、禁用,安卓系统上的物理键返回 

安卓系统上的返回键,会导致 subNVue原生子窗体的关闭,我们不希望他关闭所以使用一下方法禁用。

plus.key.addEventListener("backbutton", function() {
	console.log('backbutton');//里面可以写一些相关逻辑
});

十二、在APP 端禁止触摸 某一个区域 

@touchmove.stop.prevent 加上以后view 里面所有的 都触摸不到!

<view @touchmove.stop.prevent>
    <!--里面的都触摸不到-->    
<view/>	

十三、获取软键盘弹起的高度(APP 端)

uni.onKeyboardHeightChange(res => {
	console.log(res.height)
})	

十四、uniapp 软键盘弹起 把布局顶上面去了,解决方法 

在input 中添加上 :adjust-position="false"

<input :adjust-position="false" class="shuru-kuang_input" type="text" placeholder="说点什么..." placeholder-style="color:#fff" />        

并且在 pages.json 文件添加 "softinputMode": "adjustResize"//软键盘弹出

"app-plus":{
"softinputMode": "adjustResize"//软键盘弹出
}

十五、手机屏幕常亮

保持屏幕常亮 加在onLoad里面就行 

uni.setKeepScreenOn({
	keepScreenOn: true
});

小知识:

1、在App.vue 页面中的syle 设置 page{background-color:#ccc} 全局背景颜色为灰色 。

2、使用uniapp 组件中的scroll-view容器时 给scroll-view  设置css属性的时候 flex 弹性盒会失效。
因为: scroll-view 是一个内置的滚动容器组件,其内部内容是可滚动的,并不适用于弹性盒布局。

解决方法:
在scroll-view标签添加css属性:white-space:nowrap; 强制不换行,
在scroll-view的子节点标签添加:display:inline-block;让子元素变成行内元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值