摘要:近些天有接觸到框架,使用軟件進行編譯,能生成多端項目文件,如微信百度支付寶小程序及和端,記錄遇到的問題條件編譯我覺得比較突出的一點功能,就是這個條件編譯,指定對應的代碼執行在對應的一端僅在某平臺存在除了某平臺均存在如只在微信小程序中才執行
近些天有接觸到uni-app框架,使用HBuilderX軟件進行編譯,能生成多端項目文件,如微信、百度、支付寶小程序及Android和ios端,記錄遇到的問題1.條件編譯
我覺得比較突出的一點功能,就是這個條件編譯,指定對應的代碼執行在對應的一端
#ifdef:if defined 僅在某平臺存在 #ifndef:if not defined 除了某平臺均存在 如:只在微信小程序中才執行的代碼 // #ifdef MP-WEIXIN uni.getSystemInfo({ success: res => { this.navHeight = `${res.statusBarHeight + 46}px`; } }); // #endif
uni-app條件編譯
在pages.json中也能夠有這樣的條件編譯
2.使用相機功能在Android中,能夠在跳轉頁面后直接調用api來使用相機,但是ios上就不行,跳轉后無法調用相機
/* 調用相機代碼 */ uni.chooseImage({ count: 1, sizeType: ["original", "compressed"], sourceType: ["camera"], success: res => { const tempFilePaths = res.tempFilePaths[0]; } });3.對于scroll-view中的scroll-into-view定位元素
scroll-into-view,值應為某子元素id(id不能以數字開頭)。設置哪個方向可滾動,則在哪個方向滾動到該元素
在使用這個滾動到對應元素時,前端的渲染需要進行一定的延遲才能夠定位到對應的id
/* 在js中 */ onLoad(options) { setTimeout(() => { this.scrollIntoCate = options.id; }, 400); }, .scrollView{ /* 若是橫向滾動定位,應設置寬度 */ width: 100%; /* 若是豎向滾動定位,則應設置高度 */ height: 100%; } {{item.title}}
如果你是豎向的滾動定位,則你必須設置高度,橫向定位的話,應該設置寬度,否則無法定位元素4.對于覆蓋在視頻上的文字
小程序端能夠使用cover-view來進行覆蓋視頻,但是,App端暫不支持 cover-view、cover-image 組件之間的嵌套,使得在小程序上能夠實現的布局,app端則樣式錯亂
app端使用了原生子窗體subNav來實現覆蓋
使用后綴名為nvue的文件
px:以750寬的屏幕為基準動態計算的長度單位,與vue頁面中的rpx理念相同。(一定要注意nvue里的px,和vue里的px邏輯不一樣)
wx:與設備屏幕寬度無關的長度單位,與vue頁面中的px理念相同
使用nvue的注意點
在pages.json中進行subNav的配置
{ "path": "pages/video/video", "style": { "app-plus": { /* 子窗體定位 */ "subNVues":[{ "id": "videoChild", "path": "pages/video/index", "style": { "position": "absolute", "left": "0px", "bottom": "0px", "width": "750px", "height": "100px", "background": "transparent" } }] } } }
將要設置子窗體的頁面放入同一個文件夾,在index.nvue中,文字的放置應該是在text中,在pages.json中也應寫死寬度,不能使用百分比,支持flex布局,同時,在index.nvue中你要是想設置背景色,則應該使用background-color
subNVue 子窗體與 vue/nvue 頁面通信
/* list.vue文件 */ this.$nextTick(() => { uni.$emit("children", Object); }) /* index.nvue文件 */5.animation動畫created() { uni.$on("children", (data) => { this.$nextTick(() => { console.log(data); }) }) }, /* 在頁面銷毀前移除監聽事件 */ beforeDestroy(){ uni.$off("children"); },@{{shopname}}
設置動畫形成不同效果,使用不同的動畫時間
6.指定每次分割數組的長度this.imageList.push(...res.data.result.list); for (let i = 0; i < this.imageList.length; i++) { if (!this.imageList[i].index) { this.imageList[i].index = parseInt(35 + Math.random() * (10 - 5)) + "s"; } } .itemImg { width: 1000upx; height: 318upx; animation: imageMove linear infinite alternate; } @keyframes imageMove { 0% { transform: translateX(0); } 50% { transform: translateX(-30%); } 100% { transform: translateX(0); } }
開始的時候我想的有點多,想著每次指定分割長度后再進行操作,實際上只要直接操作就可以了
let cateList = []; this.cateLength = cateList.length; let temporaryList = []; if (cateList.length > 10) { for (let i = 0; i < cateList.length; i += 10) { let list = cateList.slice(i, 10 + i); temporaryList.push(list); } this.cateList = temporaryList; }
正在努力學習中,若對你的學習有幫助,留下你的印記唄(點個贊咯^_^)
往期好文推薦:
實現單行及多行文字超出后加省略號
判斷iOS和Android及PC端
使用vue開發移動端管理后臺
原生js實現瀑布流及微信小程序中使用左右兩列實現瀑布流
畫三角形
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/105853.html
摘要:其實大部分坑在在官網都有介紹具體位置在在中使用模塊官方文檔中總結了很多坑,但我只說一下我今天遇到的坑不支持中的過濾器解決辦法從后臺獲取數據后始用對數據進行處理,例子始用過濾器時始用僅為示例,并非真實接口地址。 其實大部分坑在 uni-app在官網都有介紹 具體位置在 在 uni-app 中使用 Vue.js 模塊 官方文檔中總結了很多坑,但我只說一下我今天遇到的: 坑1:uni-app...
摘要:當時下載了一個,下載了官方提供的示例教程。關于項目目錄開發規范一定要遵守,直接通過官網學習即可。最后就是發布安卓包和蘋果包了。我將自己做的第一個新聞列表新聞詳情程序打包,安裝到了安卓手機上測試了下,效果非常棒。 本人微信公眾號:前端修煉之路,歡迎關注 背景介紹 大概在今年的十月份左右,我了解到Dcloud推出了uni-app。當時下載了一個Hbuilder X,下載了官方提供的hell...
摘要:目錄功能框架圖開發工具是一個使用開發所有前端應用的框架,開發者編寫一套代碼,可發布到響應式以及各種小程序微信支付寶百度頭條快手釘釘淘寶快應用等多個平臺功能框架圖開發工具輕巧極速強大的語法提示專為打造 目錄 What is uni-app 功能框架圖 IDE開發工具 HBuilderX Wh...
閱讀 3456·2021-11-17 17:00
閱讀 3818·2021-08-09 13:46
閱讀 2865·2019-08-30 15:54
閱讀 626·2019-08-30 13:54
閱讀 2945·2019-08-29 17:13
閱讀 3217·2019-08-29 14:00
閱讀 2974·2019-08-29 11:11
閱讀 1379·2019-08-26 10:15