首页 文章 精选 留言 我的

精选列表

搜索[SIP信令],共10000篇文章
优秀的个人博客,低调大师

微信小程序模拟购物界面联动

2 --> 在后续我会上传整个demo,这里先介绍简单的一部分。 简单的界面效果图: 直接看代码: 一、WXML代码示例: <view > <!--左侧栏--> <scroll-view class='scroll_left' scroll-y="true"> <view > <block wx:for="{{list}}" wx:for-index="idx" wx:for-item="itemName" wx:key="*this"> <!--当前项的id等于item项的id,那个就是当前状态--> <!--用data-index记录这个数据在数组的下标位置,使用data-id设置每个item的id值,供打开右侧侧滑栏使用--> <view bindtap="switchRightTab" data-index="{{index}}" data- >{{itemName[0].name}}</view> </block> </view> </scroll-view> <!--右侧栏--> <!--如果使用 scroll-into-view 属性,必须设置 scroll-view 的高度,且最好是动态获取屏幕高度 --> <!-- scroll-into-view 属性 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素 --> <scroll-view scroll-y="true" style="height:{{winHeight}}px;" scroll-into-view="{{scrollTopId}}" scroll-with-animation="true"> <view > <view class='mink' wx:for="{{list}}" wx:for-index="idx" wx:for-item="itemName" wx:key="*this" bindscroll="scrollTop"> <view class='minl' id='{{idx}}'>{{itemName[0].name}}</view> <block wx:for="{{itemName}}" wx:for-index="idex" wx:key="*this" > <view wx:if="{{idex>0}}"> <navigator url="../detail/detail" hover-> <view> <image src="{{item.picture}}"></image> <view > <text>{{item.desc}}</text> </view> </view> </navigator> </view> </block> </view> <view style="width:100%;height:30rpx;background:#f0f4f7"></view> </view> </scroll-view> </view> 二、.JS代码示例 var list = { "List": [ { 'A': [ { name: '测试1' }, { 'picture': '../images/t1.png', 'desc': '测试1-1' }, { 'picture': '../images/t2.png', 'desc': '测试1-2' }, { 'picture': '../images/t3.png', 'desc': '测试1-3' }, { 'picture': '../images/t1.png', 'desc': '测试1-4' } ], 'B': [ { name: '测试2' }, { 'picture': '../images/t1.png', 'desc': '测试2-1' }, { 'picture': '../images/t2.png', 'desc': '测试2-1' }, { 'picture': '../images/t3.png', 'desc': '测试2-3' }, { 'picture': '../images/t1.png', 'desc': '测试2-4' } ], 'C': [ { name: '测试3' }, { 'picture': '../images/t1.png', 'desc': '测试3-1' }, { 'picture': '../images/t2.png', 'desc': '测试3-2' }, { 'picture': '../images/t3.png', 'desc': '测试3-3' }, { 'picture': '../images/t1.png', 'desc': '测试3-4' } ], 'D': [ { name: '测试4' }, { 'picture': '../images/t1.png', 'desc': '测试4-1' }, { 'picture': '../images/t2.png', 'desc': '测试4-2' }, { 'picture': '.../images/t3.png', 'desc': '测试4-3'}, { 'picture': '../images/t1.png', 'desc': '测试4-4'} ], 'E': [ { name: '测试5' }, { 'picture': '../images/t1.png', 'desc': '测试5-1' }, { 'picture': '../images/t2.png', 'desc': '测试5-2' }, { 'picture': '../images/t3.png', 'desc': '测试5-3' }, { 'picture': '../images/t1.png', 'desc': '测试5-4' } ], 'F': [ { name: '测试6' }, { 'picture': '../images/t1.png', 'desc': '测试6-1' }, { 'picture': '../images/t2.png', 'desc': '测试6-2' }, { 'picture': '../images/t3.png', 'desc': '测试6-3' }, { 'picture': '../images/t1.png', 'desc': '测试6-4' } ], 'G': [ { name: '测试7' }, { 'picture': '../images/t1.png', 'desc': '测试7-1' }, { 'picture': '../images/t2.png', 'desc': '测试7-2' }, { 'picture': '../images/t3.png', 'desc': '测试7-3' }, { 'picture': '../images/t1.png', 'desc': '测试7-4' } ], } ], } module.exports = list; Page({ data: { // 左侧点击类样式 curNav: 'A', }, onReady: function () { // 生命周期函数--监听页面初次渲染完成 var listChild1 = list.List[0]; var that = this; // 获取可视区高度 wx.getSystemInfo({ success: function (res) { that.setData({ list: listChild1, winHeight: res.windowHeight, }) } }) }, //点击左侧 tab ,右侧列表相应位置联动 置顶 switchRightTab: function (e) { var id = e.target.id; console.log(typeof id) this.setData({ // 动态把获取到的 id 传给 scrollTopId scrollTopId: id, // 左侧点击类样式 curNav:id }) } }) 图片路径可自行新建文件夹images里添加 三.WXSS代码示例 /*总体主盒子*/ .container { position: relative; width: 100%; height: 1220rpx; background-color: #f0f4f7; color: #939393; } /*左侧栏主盒子*/ .nav_left { /*设置行内块级元素(没使用定位)*/ display: inline-block; width: 100%; height: 100%; /*主盒子设置背景色为灰色*/ background: #fff; text-align: center; /* position: fixed; */ left: 0; top: 0; border-top: 1rpx solid #dedede; } /*左侧栏list的item*/ .nav_left .nav_left_items { background: #fff; /*每个高30px*/ height: 80rpx; /*垂直居中*/ line-height: 80rpx; /*再设上下padding增加高度,总高42px*/ padding: 15rpx 0; /*只设下边线*/ border-bottom: 1px solid #dedede; /*文字14px*/ font-size: 29rpx; color: #101010; font-weight: } /*左侧栏list的item被选中时*/ .nav_left .nav_left_items.active { /*背景色变成白色*/ background: #f0f4f7; color: #ed1000; } /*右侧栏主盒子*/ .scroll_right { /*右侧盒子使用了绝对定位*/ position: fixed; top: 0; right: 0; overflow: auto; flex: 1; /*宽度75%,高度占满,并使用百分比布局*/ width: 75%; height: 100%; padding: 20rpx; box-sizing: border-box; background-color: #f0f4f7; border-top: 1rpx solid #dedede; } .mink::after { display: block; content: ''; clear: both; } .jiul, .jiul image { width: 100%; height: 170rpx; } .minl { font-size: 29rpx; color: #777; text-align: left; line-height: 60rpx; float: left; background: #f0f4f7; width: 100%; /* height: 50rpx; */ } .mink { width: 100%; background: #fff; height: 100%; } /*右侧栏list的item*/ .nav_right_items { /*浮动向左*/ float: left; /*每个item设置宽度是33.33%*/ width: 50%; /* height: 160rpx; */ text-align: center; color: #4a4a4a; background: #fff; } .nav_right_items image { /*被图片设置宽高*/ width: 60px; height: 50px; margin-top: 15rpx; } .nav_right_items text { /*给text设成块级元素*/ display: block; margin-top: 5rpx; margin-bottom: 10rpx; font-size: 26rpx; /*设置文字溢出部分为...*/ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } /** 自定义其他点击态样式类 **/ .other-navigator-hover { background: #fff; } .scroll_left { width: 25%; height: 100%; background: #fff; text-align: center; position: fixed; left: 0; top: 0 } -END

优秀的个人博客,低调大师

微信x5webview接入实战

应用中许多网页由于优化的不够理想,出现加载慢,加载时间长等,而且因为碎片化导致兼容性问题,有一些网页有视频内容,产品还提出各种小窗需求,搞得心力憔悴。找到公开的有crosswalk和x5webview,经过分析和研究决定上x5weview,他的好处有哪些呢? 1. TBS(腾讯浏览服务)的优势 1) 速度快:相比系统webview的网页打开速度有30+%的提升; 2) 省流量:使用云端优化技术使流量节省20+%; 3) 更安全:安全问题可以在24小时内修复; 4) 更稳定:经过亿级用户的使用考验,CRASH率低于0.15%; 5) 兼容好:无系统内核的碎片化问题,更少的兼容性问题; 6) 体验优:支持夜间模式、适屏排版、字体设置等浏览增强功能; 7) 功能全:在Html5、ES6上有更完整支持; 8) 更强大:集成强大的视频播放器,支持视频格式远多于系统webview; 9) 视频和文件格式的支持x5内核多于系统内核 10) 防劫持是x5内核的一大亮点 2. 运行环境 1)手机ROM版本高于或等于2.2版本 2)手机RAM大于500M,该RAM值通过手机 /proc/meminfo 文件的MemTotal动态获取 注:如果不满足上述条件,SDK会自动切换到系统WebView,SDK使用者不用关心该切换过程。 3. SDK尺寸指标 1)SDK提供的JAR包约250K 经过实际测试对一些页面的支持确实比原生的好,尤其是对视频的支持上面,解码和加载效果明显。而且对一些非常重的页面支持比较好,经常发现有一些在PC端的页面直接就甩过来丢到app上面,一看几十M,加载半天加载不出来,而且白屏,特别烦。关键webview还是有点问题的,有时候加载错误也不回调,进度直接卡死。 集成步骤: 1.导入jar包. 2.导入so库。这里需要注意的是,只提供了ameabli的,如果要求其他的直接考一个到读应的目录就行。 3.权限声明增加下面配置: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 4.替换到app中原先所有的webview,包括布局和动态创建的webview--x5webview。 5.初始化,上报错误可以不加。 QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() { @Override public void onViewInitFinished(boolean finished) { //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。 LogUtil.e("my", " onViewInitFinished is " + finished); } @Override public void onCoreInitFinished() { LogUtil.e("my", " onCoreInitFinished " ); } }; //x5内核初始化接口 try { QbSdk.initX5Environment(getApplicationContext(), cb); } catch (Exception e) { } CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(getApplicationContext()); strategy.setCrashHandleCallback(new CrashReport.CrashHandleCallback() { public Map<String, String> onCrashHandleStart(int crashType, String errorType, String errorMessage, String errorStack) { LinkedHashMap<String, String> map = new LinkedHashMap<String, String>(); String x5CrashInfo = com.tencent.smtt.sdk.WebView.getCrashExtraMessage(getApplicationContext()); map.put("x5crashInfo", x5CrashInfo); return map; } @Override public byte[] onCrashHandleStart2GetExtraDatas(int crashType, String errorType, String errorMessage, String errorStack) { try { return "Extra data.".getBytes("UTF-8"); } catch (Exception e) { return null; } } }); 7.注意事项 如果需要使用播放器功能,需要播放的页面在清单文件中加入,不加的话,呵呵呵,比如小窗模式 在某些手机上就用不了 页面的Activity需要声明android:configChanges="orientation|screenSize|keyboardHidden" 为了避免闪烁的问题,在activity中要加入: getWindow().setFormat(PixelFormat.TRANSLUCENT);(这个对宿主没什么影响,建议声明) 不要去尝试调用 webview.setLayerType() webview.setDrawingCacheEnabled(true); 重要的点,关于websettings的设置,一定按照demo中的来,我的配置如下 WebSettings webSetting = this.getSettings(); webSetting.setJavaScriptEnabled(true); webSetting.setJavaScriptCanOpenWindowsAutomatically(true); webSetting.setAllowFileAccess(true); webSetting.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); webSetting.setSupportZoom(true); webSetting.setBuiltInZoomControls(true); webSetting.setUseWideViewPort(true); webSetting.setSupportMultipleWindows(true); webSetting.setLoadWithOverviewMode(true); webSetting.setAppCacheEnabled(true); // webSetting.setDatabaseEnabled(true); webSetting.setDomStorageEnabled(true); webSetting.setGeolocationEnabled(true); webSetting.setAppCacheMaxSize(Long.MAX_VALUE); // webSetting.setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY); webSetting.setAppCachePath(getContext().getDir("appcache", 0).getPath()); webSetting.setDatabasePath(getContext().getDir("databases", 0).getPath()); webSetting.setGeolocationDatabasePath(getContext().getDir("geolocation", 0).getPath()); webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND); // webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH); webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE); //增加 // webSetting.setTextSize(WebSettings.TextSize.NORMAL); //支持混合模式 // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // webSetting.setMixedContentMode(android.webkit.WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); // } //接口禁止(直接或反射)调用,避免视频画面无法显示: // setLayerType(View.LAYER_TYPE_SOFTWARE,null); // setDrawingCacheEnabled(true); // this.getSettingsExtension().setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);//extension // settings 的设计 CookieSyncManager.createInstance(getContext()); CookieSyncManager.getInstance().sync(); 接入以后遇到一些诡异的问题: 1.小窗有些手机上无法使用,发现是清单文件声明少了导致的 2.发现拦截无网络的errordes和webview的不同 3.发现极简的app,在首次加载网页会出现加载不出来的问题,经过调试发现原来是x5webview还没有初始化完成,就在activity中调用了x5webview导致的,所以一定要注意预加载的回调。 4.关于线上问题的查漏补缺,记得带上x5webview的版本号 腾讯x5webview官网 腾讯x5webview论坛交流

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册