1. 程式人生 > >百度小程式開發實戰--踩坑經歷

百度小程式開發實戰--踩坑經歷

  1.  文章列表rich-text的圖片寬度問題
        效果如下

       後端返回的資料格式為string,小程式對次採用了rich-text來識別傳入的html
       rich-text推薦使用node的陣列模式,字串模式會影響解析速度(因為最終還是會轉換為陣列型別),但是後端返回的為string格式,是由後臺編輯器傳入的。

     這就導致了無法操作css中 rich-text 裡邊的圖片樣式。
     解決方法:
                   1. php端,在返回時修改返回的string

    $info['contents'] = str_replace("<img ", "<img style='max-width:100%;height:auto;'", $info['contents']);

                   2. 在js中處理返回的資料,但是增加了處理成本(採用此解決方案)
    that.setData({  contents: res.data.contents.replace(/\<img/gi, '<img style="max-width:100%;height:auto"') })

  2. 關於跳轉外部頁面的處理

    百度小程式給出了web-view這個標籤來跳轉外部的連結,但是web-view是自動開啟新的頁面,無法做到點選某個圖片或者button,跳轉開啟新的頁面

    由於小程式所有的跳轉都是通過navigateTo這個物件來進行跳轉的,但是這個物件只能跳轉小程式內的page頁面或者其他的百度小程式

    所以解決方案是,寫一個page做一個web-view的承載頁

     

     

     而在呼叫頁,使用一個bindtap的方法執行page的切換,同時把要跳轉的url傳遞過去

     


  3. 還是web-view的問題,直接寫src的http連結是可以帶引數的,但是通過呼叫中間頁url的引數會報錯,原因是傳參會解析url 問號後邊的引數,解決方法是先encodeURLComponent 一下

  4. 關於外部字型的引入
    視覺中有關於特殊字型的引入

    在小程式新建了一個樣式表專門引入,但是踩的坑是,具體到元件的css引入後無效(page中是生效的),最好在最外層的app.css中引入
  5. 標籤支援較少 只能限制使用view template button text等幾個 ul li 等都不支援使用
  6. 不支援根據資料動態引入template  如<template is="template-{{id}}"></template>
    解決方案: 根據block 判斷載入不同的template  <block s-if="{{ id == 1}}"><template is="template-1" data="{{{...detail}}}" /></block>
  7. button 等標籤自帶預設樣式
     需要在css檔案中覆蓋 最好寫一個reset的重置樣式表將button等需要自定義的標籤重置掉
     
  8. rich-text 遇到不識別的標籤會停止渲染,並且不報錯
     rich-text 僅支援常規的標籤 在聯調中後端返回了一個無法識別的link標籤



    導致頁面無法渲染,關鍵是不報錯


    解決方法(個人想法):前端或者後端對不支援的標籤進行過濾,小程式可以新增一個過濾器,對返回的字串進行檢驗(有一個大膽的想法,可以寫一個loader外掛專門來過濾這些文章)
  9. 非同步介面返回到渲染有時間延遲,可以加一箇中間的過度頁面
  10. 關於自定義導航欄沒有返回按鈕
    視覺希望的效果是這樣,也就是頁面的元素頂到導航欄的下邊,同時導航欄是透明的,這樣頁面看起來更漂亮一些


    百度小程式提供了自定義導航欄的功能,通過配置頁面的 XXX.json的 navigationStyle屬性為custom,開啟自定義模式


    開啟後發現導航欄是透明瞭,視訊頁頂頭了,但是沒有了返回按鈕(令人窒息),所以只能自己寫一個。
    懸浮在video等原生元件的上層只能使用cover-view或者cover-image標籤
    這些都不是多麼複雜,我把自定義的導航欄寫為一個公共元件,fixed定位到頁面的左上角,令人窒息的事情又出現了,在cover-view上繫結的bindtap的點選事件不生效
    之前在其他的地方也使用過這個標籤,繫結事件也沒問題,問題只可能出現在樣式上,除錯了css程式碼後,發現定位只要移除導航欄區域點選事件就可以生效,百度開發者工具的模擬器上確實是這個樣子。
    之後又真機除錯後發現可以,即使在導航欄區域點選也是生效的
    總結:這應該算是開發者工具模擬器的一個bug,如果真發現不了程式碼的問題,建議真機除錯 ,開發者工具的模擬並不完全可信

     

  11. 小程式跳轉小程式
    這算是小程式向站外跳轉的第二種,也就是除了跳第三方H5頁面,這次是跳其他的小程式,針對跳其他的小程式,百度小程式給了自己的api

    同時也有返回上一個小程式的api

    具體的寫法,是在util的工具類中封裝了一個公共的方法,方便所有的地方呼叫
13. 自定義導航欄+自定義返回按鈕+video原生元件 在ios和安卓下的不同表現

    視覺是需要視訊類的頂頭,所以需要設定當前頁的nav的屬性為custom

    但是新的問題又來了,設定為custom後需要自定義返回按鈕,而且這個按鈕還必須要加在video元件上邊,所以只能在video元件中使用cover-view

    在真機測試前都是正常的,模擬器也是正常的顯示,但是實際機器測試時發現 ios可以正常顯示,並且可以正常返回,但是在安卓上,進入頁面後,左上角的返回按鈕會逐漸消失,相當於是被視訊元件遮擋了

    還有就是 在安卓下 視訊全屏播放,返回按鈕就會出現,直接從全屏返回會直接返回首頁,而不是返回當前列表頁面,點選自帶的返回按鈕返回到列表,安卓下的返回按鈕又出現了,並且可以正常點選。

    個人猜測,1是cover+view+自定義導航欄+原生video標籤導致層級問題,也嘗試調過層級,但是不生效。

    個人猜測,原生元件的層級是1,cover-view的層級可能就是2,但是導航欄區域的層級其實才是全域性最高的可能是3,而自己加了的cover-view剛好就在這之間,所以失效了

    目前已經提bug給百度小程式開發組

13 還是rich-text元件,目前總結下遇到的問題

    13.1 返回rich-text無法識別的標籤 整個頁面停止渲染(這個也只能靠前端發現一個替換一個,比如遇到的section標籤,統一替換成p,但是有些自定義的標籤,比如說一些表情,目前 無法替換)

    13.2 第三方抓取的標籤不完整,比如缺少了一個</p>也是無法渲染的(這個只能發現一篇,下線一篇,目前沒有什麼好的方法)

    13.3 空的標籤是佔位置的,這個前端replace把所有的空的html標籤都切掉

相關推薦

程式開發實戰--經歷

 文章列表rich-text的圖片寬度問題    效果如下    後端返回的資料格式為string,小程式對次採用了rich-text來識別傳入的html   rich-text推薦使用node的陣列模式,字串模式會影響解析速度(因

程式開發

小程式代理開發V信:863110025 億歐家居獲知,剛剛上線60天的考拉精選完成了3000萬元Pre-A輪融資,由拓德資本領投、銀河系創投、新高橋網跟投。 據瞭解,考拉精選是快消品B2B平臺“新高橋”孵化的社群團購專案,於5月啟動,7月在長沙正式上線。該平臺以

Okam(奧卡姆):程式開發框架,支援程式、微信程式、支付寶程式

Okam(奧卡姆):小程式開發框架,支援百度小程式、微信小程式、支付寶小程式 Okam 是什麼 `Okam` 一個面向小程式開發的開發框架,開發體驗類 `Vue`。詳情 Okam 對各小程式的支援情況 支援 百度小程式 支援 微信小程式 支援 支付寶小程式 Okam 提供

開發一款簡單的程式(由微信程式遷移過來)

開發一款簡單的百度小程式(由微信小程式遷移過來) 百度小程式剛出兩個月不久,上個週末閒來無事,看了一下百度小程式的文件,百度下程式的文件跟微信的差不了多少,就是一些api和語法會有一點差別,基本上能寫微信小程式的都能很快學會百度小程式!不過百度小程式的開發者工具真的沒有微信的好。我寫

程式開發-mpvue構建程式專案-1-

mpvue-entry 外掛引入 mpvue的坑 mpvue新增頁面或者模組的時候必須重新npm run dev才可以進行更新,不支援熱更新 mpvue所有頁面模組.vue檔案都需要寫main.js,重複工作 npm安裝mpvue-entry依賴包 n

微信程序開發問題整理,web-view、openID、程序支付等匯總

模板 www. 通過 file 微信小程序 ref 網絡請求 session保持 family 微信小程序開發過程中遇到的問題踩坑整理,內容包括web-view、openID、小程序支付、網絡請求等等一系列問題匯總,希望對大家能有一定幫助和啟發。 內容如下: 關於小程序

純正商業級應用-微信程式開發實戰已更完

第1章 導學與申請appkey 如何更好的學習本課程?如何申請開發者key?如何呼叫和測試介面? 1-1 微信小程式商業級實戰-課程導學。 1-2 優先自己開發 1-3 appkey的申請 1-4 課程維護說明 第2章 準備工作 開發前的準備工作以及第三方開發工具的選擇 2-1 流程與開發前準備 2

純正商業級應用-微信程式開發實戰最新無加密

第1章 導學與申請appkey 如何更好的學習本課程?如何申請開發者key?如何呼叫和測試介面? 1-1 微信小程式商業級實戰-課程導學。 1-2 優先自己開發 1-3 appkey的申請 1-4 課程維護說明 第2章 準備工作 開發前的準備工作以及第三方開發工具的選擇 2-1 流程與開發前準

微信程式wx.request記錄

一:header['content-type'] 為 application/json 的資料 前端 wx.request({ url: apiUrl, //替換成自己的伺服器地址 data: {

程式金額輸入框校驗元件

標題 swan檔案 <input name="{{nameStr}}" value="{=value=}" bindinput="vChange" bindblur="vBlur" maxlength="{{maxLength}}" placeholde

vue 專案快速輸出微信、支付寶、程式

上週,[email protected] 正式釋出,優化了資料更新效能的同時,支援了百度智慧小程式,著實激動了一把,這“可能”是目前社群裡第一個同時支援三端小程式的 vue 小程式框架。下面我們就來試試他的效果。 跟著文件走 官方文件的第一部分就是快速入門,順藤摸瓜,構建一個 megalo 專案

程式 巧應用-微信程式開發實戰》.pdf

書籍簡介: 《小程式,巧應用:微信小程式開發實戰》系統全面地講解微信小程式的開發技術。開篇建立一個小程式專案並解析體驗,介紹如何由零開始建立一個小程式,全面體驗小程式的開發工具、介面、開發框架、實現過程及其主要程式碼框架,瞭解小程式的應用場景及開發要求。接著介紹小程式開發基礎,包括小程式開

微信程式開發實戰03

框架元件的開發和應用 框架為開發者提供了一系列的基礎元件,開發者可以通過組合這些基礎元件進行快速開發,創建出強大的微信小程式 元件時檢視層的基本組成單元,時構建頁面結構的重要元素 常用元件:檢視容器 基礎內容 表單 互動操作 頁面導航 三個高階元件: 媒體,地圖,畫布 View Sc

程式模板

<view s-for="item in items" class="single-item" bind:tap="oneItemClick" bind:touchstart="oneItemTouchStart" bind:touchmove="oneItemTouchmove" bind:

程式資訊流與自然搜尋管理

1. 百度資訊流作為小程式的主要流量入口,在您提交想要的素材內容後,可在使用者的自然資訊流結果中展示相應小程式的內容並引導使用者進入小程式,獲取流量。 形式 圖文大圖、視訊大圖、橫滑卡片、左圖右文等,具體引數如下: 項 要求

純正商業級應用-微信程式開發實戰同步分享

第1章 導學與申請appkey 如何更好的學習本課程?如何申請開發者key?如何呼叫和測試介面? 1-1 微信小程式商業級實戰-課程導學。 1-2 優先自己開發 1-3 appkey的申請 1-4 課程維護說明 第2章 準備工作 開發前的準備工作以及第三方開發工具的選擇

純正商業級應用-微信程式開發實戰(雲盤分享)

第1章 導學與申請appkey 如何更好的學習本課程?如何申請開發者key?如何呼叫和測試介面? 1-1 微信小程式商業級實戰-課程導學。 1-2 優先自己開發 1-3 appkey的申請 1-4 課程維護說明 第2章 準備工作 開發前的準備工作以及第三方開發工具的選擇

純正商業級應用-微信程式開發實戰目前最全(雲盤下載)

.第1章 導學與申請appkey 如何更好的學習本課程?如何申請開發者key?如何呼叫和測試介面? 1-1 微信小程式商業級實戰-課程導學。 1-2 優先自己開發 1-3 appkey的申請 1-4 課程維護說明 第2章 準備工作 開發前的準備工作以及第三方開發工具的選擇 2

程式】(

1, canvas中新增文字定位出錯問題 fillText 說明:當我使用fillText新增文字並定位到座標0,0時,發現文字並沒有如預期的一樣顯示,而是有部分超出了畫布外。後來才發現是因為畫布中是預設文字是根據座標點居中顯示的; 只要設定好對其方式即可; ctx.setT

程式月活突破1億 一文看懂如何申請程式

早在今年七月初,百度繼阿里、騰訊之後正式上線百度智慧小程式,成為網際網路第三個小程式平臺。再完成2個月公測之後,相關統計資料顯示百度小程式月活突破1億大關,包含100多個不同的應用場景。而第一批獲得百度智慧小程式內測許可權的的商家和企業也藉此獲得巨大商業利益。