微信小程序常見問題及新手跳坑指南 每日更新 歡迎補充


以下為一些微信小程序常見問題整理,如果你有需要補充的可以在樓下回復進行補充,如果本帖內容有誤,請回復,感謝!

微信小程序   navigateTo 只能使用五次  五次之后無效  怎么處理的?
答:

不是只能跳轉5次,而是跳轉層次只能是5層,注意理解。

頁面一層一層往里跳進,最多5層。是這個意思。


微信小程序中能否用js更改app.js中的globalData?怎么實現?
不能更改的話怎么實現在當前頁面中設置一個屬性,在另一個頁面中也能顯示出來?

答:

可以修改啊,globalData只是設置在app.js 的一個object數據,你可以直接改的。

比如:
在globalData里有一個users = ['張三', '李四'];

在任意一個js里可以修改:getApp().globalData.users = ['王五', '趙六'];


wx.showToast({  title: '成功',  icon: 'success',  duration: 2000})這個代碼在開發工具里面提示不了啊,請問各位是怎么解決的?開發工具只能提示  求大神幫忙看下

答:

現在是有這樣的情況。IDE的代碼提示和官方API不一致。

類似問題還有,IDE可以使用的組件,手機上不可以正常顯示等。

版本問題,只能微信解決。在這之前,請手動敲入!!!
開發者工具還美更新吧,看了下文檔toast即將棄用,使用wx.showToast,但是開發者工具里還沒更新


1、php自己的session是用來判斷用戶是否登錄的,windows+apache的話,小程序的session咋存儲。是存儲到數據庫中???還是哪???
2、wx.login中的code哪個是用戶的唯一標識?是openid嗎??

答:

小程序在本地存儲一個秘鑰,每次請求的時候帶過去,服務端校驗這個秘鑰,如果合法,返回成功和對應的數據


微信的check方法里面的參數是什么?
答:


微信小程序的用戶信息可以做登錄嗎?請問小程序的用戶信息可以做登錄嗎,只有頭像和昵稱,都沒有唯一標識
答:

獲取微信信息有唯一標識

 

這個應該是要和后台配合,自己生成一個session作為唯一標示,不能用openid


swiper插件使用問題

感覺沒辦法,組件的體驗需要微信的優化,組件都是封裝好的改不了


小程序 post 參數一直進不去 服務器端沒接收到。



我試了下,php框架使用ThinkPhP。請求代碼:
wx.request({
          url: 'http://localhost/api/getList',
          data: {lastid:lastid,limit:limit},
          header: {
              'Content-Type': 'application/json'
          },
          method:'post',
          success: function(res) { 
                var cc = res.data;
          },
          fail: function(res){  },
          complete: function(){  }
      })


post數據:
 

后台代碼(查詢后返回,使用ajaxReturn返回數據到前端):
function getList(){    
            $list = M('mmc')->field('id,title,img,cTime')->limit($limit)->select();
            $this->ajaxReturn($list);
}

前端接收到的數據(success函數回調的res):


關於php無法接收微信小程序POST傳參

剛剛開始按照微信官方的方法寫了一個POST傳參,后台使用php進行解析入庫。
但是突然發現GET能接收到傳參,但是后台$_POST死活都沒辦法進行傳參。
  1. wx.request({
  2.       url: 'http://localhost/XXX.php',
  3.       data: {
  4.         menu: data.detail.value.menu ,
  5.       },
  6.       /*header: {
  7.           'content-type': 'application/json'
  8.       },*/
  9.       method:'post',
  10.       success: function(res) {
  11.         console.log(res.data)
  12.       }
  13.     })
復制代碼

查了資料,都說是
  1. 'content-type': 'application/json'
復制代碼

大小寫的問題。但是我把它改成小寫了還是不行。
后來仔細研究了發現,微信小程序通過POST的不是字符串,而是JSON信息,所以在后台是無法直接用$_POST進行解析的。

這個是我們正常POST信息瀏覽器對后台文件發送的post信息

這個是小程序POST的信息,所以我們就要處理一下才行了

php獲取信息如下:
  1. $menu = file_get_contents('php://input');
  2. $val = json_decode($menu,true);
  3. echo($val['menu']);
復制代碼

把json轉換成數組以后就可以正常的進行數據處理了!


小程序里的console在wing工具哪里看

點擊調試即可


之前已認證的公眾號不能用作開發小程序嗎?

小程序是和訂閱號、服務號以及企業號平行的新類型,所以需要在微信公眾平台申請一個新的小程序號,需要重新認證。


特別好奇 微信小程序能不能支持發送圖標到桌面這個功能

安卓應該可以,蘋果不行


微信小程序沒有提供webview組件嗎?

首先微信內跳轉普通H5頁面時,跳轉地址是需要在國內備案的,否則會有警告提示。
以微信的尿性,我個人估計小程序是不會提供webview組件讓你自由加載第三方頁面的,安全考慮。


[table=98%]
[tr][td]<view wx:if="{{list}}">  list是數組,怎么判斷條數為0

你說的是條件渲染嗎?
也可以<view wx:if="{{list.length == 0}}"> </view>


可以在 {{}} 內進行簡單的運算,包括三元運算符、邏輯判斷、算數運算


[table=98%]
[tr][td]
我想在首頁頂部導航上添加一個按鈕,點擊后跳轉到另外一個頁面。請問怎么實現,謝謝了

微信小程序有相關的API:

wx.navigateTo(OBJECT)

保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack可以返回到原頁面。

OBJECT參數說明:

參數        類型        必填        說明
url        String        是        需要跳轉的應用內頁面的路徑 , 路徑后可以帶參數。參數與路徑之間使用?分隔,參數鍵與參數值用=相連,不同參數用&分隔;如 'path?key=value&key2=value2'
success        Function        否        接口調用成功的回調函數
fail        Function        否        接口調用失敗的回調函數
complete        Function        否        接口調用結束的回調函數(調用成功、失敗都會執行)
示例代碼:

wx.navigateTo({
  url: 'test?id=1'
})
//test.js
Page({
  onLoad: function(option){
    console.log(option.query)
  }
})
注意:為了不讓用戶在使用小程序時造成困擾,我們規定頁面路徑只能是五層,請盡量避免多層級的交互方式。

wx.redirectTo(OBJECT)
關閉當前頁面,跳轉到應用內的某個頁面。

OBJECT參數說明:

參數        類型        必填        說明
url        String        是        需要跳轉的應用內頁面的路徑
success        Function        否        接口調用成功的回調函數
fail        Function        否        接口調用失敗的回調函數
complete        Function        否        接口調用結束的回調函數(調用成功、失敗都會執行)
示例代碼:

wx.redirectTo({
  url: 'test?id=1'
})
wx.navigateBack(OBJECT)
關閉當前頁面,返回上一頁面或多級頁面。可通過 getCurrentPages()) 獲取當前的頁面棧,決定需要返回幾層。

OBJECT參數說明:

參數        類型        默認值        說明
delta        Number        1        返回的頁面數,如果 delta 大於現有頁面數,則返回到首頁。



舉個例子:
點擊一個按鈕后跳轉

  buttonClick:function(e){
    var agrs ='我是參數';
    wx.navigateTo({
        url: '../order/order?order=' + agrs
    })
  },

其中的URL是工程里目標頁面的相對路徑。
至於你說的導航條左上角的按鈕,需要自己去做UI,以上是邏輯層面的。


想開發一個社交小程序 程序里面產生動態能提示用戶么?

微信的概念是不打擾用戶,肯定不能隨便給用戶彈消息,但是有模板消息 是專門做消息通知的


想做個本地垂直類的服務型項目。小程序試用嗎

非常適合,試水成本也不高


怎么讓<swiper>充滿整個屏幕啊

寬高都設置為100%,試試看


微信小程序多個組件動畫,官方教程上都是單個組件的動畫比如

  1. var animation = wx.createAnimation({
  2.         duration: 1000,
  3.         timingFunction: "ease",
  4.         delay: 2000
  5.       })
  6.       this.animation = animation
  7.     
  8.       animation.scale(1).step();
  9.       this.setData({
  10.         AvatarShow:animation.export()
  11.       })
  12. <image class="avatar" animation="{{AvatarShow}}" src="{{userInfo.avatarUrl}}"></image>
復制代碼


這樣的,但是我想讓這個動畫執行完畢了以后,控制

  1. <text class="userinfo-nickname">歡迎您:{{userInfo.nickName}}</text>
復制代碼


其他的組件做動畫效果應該怎么做呢?


  1.     rotateThenScale: function() {
  2.         this.animation.rotate(Math.random() * 720 - 360).step()
  3.             .scale(Math.random() * 2).step()
  4.         this.setData({ animation: this.animation.export() })
  5.         setTimeout(function() {
  6.             this.animation2.rotate(Math.random() * 720 - 360).step()
  7.                 .scale(Math.random() * 2).step()
  8.             this.setData({ animation2: this.animation2.export() })
  9.         }.bind(this), 3000)
  10.     },
復制代碼


比如這個是我修改的官網示例,animation不同就可以控制不同的組建了,這個相當於獲取了界面元素

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM