美文网首页
uniapp相关

uniapp相关

作者: Raral | 来源:发表于2020-11-12 15:48 被阅读0次

    内置头部导航组件

    • 高度默认: 44px

    生命周期函数

    created > onLoad > onShow > mounted
    

    关于uniapp尺寸计算和转换关系

    console.log(uni.upx2px(100))// 结果:48 
    // 通过以上的upx 转换 px 结果知道
    //100upx = 100/2 - 2 = 48 px
    // 48px = (48 + 2)*2 = 100 upx
    
    .scroll-box {
        // 以是屏幕高度 640为参考
        // 100vh => 640px
        // 100upx => 100/2 - 2 = 48px (自己定义头部区域)
        // 92upx => 92/2 - 2 = 44px(uniapp 自带头部导航高度)
        //calc(100vh - 100upx - 92upx) =>  640 - 48 - 44 = 648px(滚动区域的高度)
        height: calc(100vh - 100upx - 92upx);
        background-color: #f00;
    }
    
    

    H5平台中咋样隐藏导航条

        // /deep/ .uni-scroll-view ::-webkit-scrollbar {
        //     width: 0;
        //     height: 0;
        //  color: transparent;
        //     background-color: transparent;
        // }
        // /deep/::-webkit-scrollbar {
        //  width: 0;
        //     height: 0;
        //     background-color: transparent;
        //  color: transparent;
        // }
    

    注意

    当隐藏过导航条后,同时也会隐藏对应的边框样式,所以当我们操作滚动区域某一个盒子,我们尽量不要添加 边框激活状态。

    H5中指定滚动

    /* //选项卡 */
        .nav-bar {
            border-top: 1px solid #F8F8F8;
            position: relative;
            z-index: 10;
            height: 90upx;
            white-space: nowrap;
            box-shadow: 0 2upx 8upx rgba(0,0,0,.06);
            background-color: #fff;
            .nav-item{
                display: inline-block;
                width: 150upx;
                height: 90upx;
                text-align: center;
                line-height: 90upx;
                font-size: 30upx;
                color: #303133;
                position: relative;
                &:after{
                    content: '';
                    width: 0;
                    height: 0;
                    border-bottom: 4upx solid #3AA426;
                    position: absolute;
                    left: 50%;
                    bottom: 0;
                    transform: translateX(-50%);
                    transition: .3s;
                }
            }
            .current{
                color: #3AA426;
                &:after{
                    width: 50%;
                }
            }
            
        }
        /* //滑动区域 */
        .swiper-box {
            height: calc(100vh - 88upx - 90upx);
            overflow: hidden;
            .swiper-item {
                height: 100%;
                background-color: #3F536E;
                .scroll-box {
                    height: 100%;
                    .content {
                        height: 2000upx;
                    }
                }
            }
        }
        
    

    H5检测是否安装app 公司业务拓展到微信,qq和支付宝;在这些平台打开的h5页面需要唤起app实现一些功能;

    • js通过ua标识判断h5页面是否内嵌在app内
    var userAgent = navigator.userAgent.toLowerCase();//获取UA信息
    if(userAgent.indexOf("ezhouxing") != -1){//判断ua中是否含有和app端约定好的标识ezhouxing
            alert(包含);
        }
    
    • 判断是否安装过app
    $(function () {
      var name,value;
      if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
          // 判断useragent,当前设备为ios设备
          window.location.href = "XXX://"; // iOS端URL Schema
          window.setTimeout(function() {
              window.location = "https://itunes.apple.com/cn/app/XXX/"; // appstore下载地址
          },  2000);
      } else if (navigator.userAgent.match(/(android|Android);?/i)) {
          window.location.href = "scheme://XXXX"; /***打开app的协议,有安卓同事提供***/
          window.setTimeout(function(){
              window.location = "http://XXXXX/android.apk"; /***打开app的协议,有安卓同事提供***/
          },2000);
      }
    });
    
    

    H5/微信小程序/app-分享

    https://www.cnblogs.com/IT-study/p/10101250.html

    app首次流程

    启动页 =》 引导页 =》 登录页 =》 业务主页

    app与H5通讯

    ios把方法定义到window
    window.webkit.messageHandlers.IOSmethod.postMessage("ios)
    android把方法定义到window
    window.android.androidmethod
    H5把方法定义到window
    window.h5.H5method

    定义完后,APP与H5相互调用彼此的定义的方法即可

    小程序之间的相关跳转

    uni.navigateToMiniProgram({
    appId: 'appid',
    path: "path",
    success: res => {
        // 打开成功
        console.log("打开成功", res);
    },
    fail: err => {
        console.log(err);
    }
    });
    

    咋样解决小程序中的富文本图片溢出?

    filters: {
                /**
                 * 处理富文本里的图片宽度自适应
                 * 1.去掉img标签里的style、width、height属性
                 * 2.img标签添加style属性:max-width:100%;height:auto
                 * 3.修改所有style里的width属性为max-width:100%
                 * 4.去掉<br/>标签
                 * @param html
                 * @returns {void|string|*}
                 */
                formatRichText (html) { //控制小程序中图片大小
                    let newContent= html.replace(/<img[^>]*>/gi,function(match,capture){
                        match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
                        match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
                        match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
                        return match;
                    });
                    newContent = newContent.replace(/style="[^"]+"/gi,function(match,capture){
                        match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
                        return match;
                    });
                    newContent = newContent.replace(/<br[^>]*\/>/gi, '');
                    newContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:inline-block;margin:10rpx auto;"');
                    return newContent;
                }   
            }
    
    

    uniapp 不管小程序与app都可以分包处理项目,包括静态资源也可以分包

    https://www.jianshu.com/p/4f9cf9442fae

    敬请期待

    相关文章

      网友评论

          本文标题:uniapp相关

          本文链接:https://www.haomeiwen.com/subject/tipjbktx.html