以下為一些微信小程序常見問題整理,如果你有需要補充的可以在樓下回復進行補充,如果本帖內容有誤,請回復,感謝!
微信小程序 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死活都沒辦法進行傳參。
復制代碼
- wx.request({
- url: 'http://localhost/XXX.php',
- data: {
- menu: data.detail.value.menu ,
- },
- /*header: {
- 'content-type': 'application/json'
- },*/
- method:'post',
- success: function(res) {
- console.log(res.data)
- }
- })
查了資料,都說是
復制代碼
- 'content-type': 'application/json'
大小寫的問題。但是我把它改成小寫了還是不行。
后來仔細研究了發現,微信小程序通過POST的不是字符串,而是JSON信息,所以在后台是無法直接用$_POST進行解析的。
這個是我們正常POST信息瀏覽器對后台文件發送的post信息
這個是小程序POST的信息,所以我們就要處理一下才行了
php獲取信息如下:
復制代碼
- $menu = file_get_contents('php://input');
- $val = json_decode($menu,true);
- 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%,試試看
微信小程序多個組件動畫,官方教程上都是單個組件的動畫比如
- var animation = wx.createAnimation({
- duration: 1000,
- timingFunction: "ease",
- delay: 2000
- })
- this.animation = animation
- animation.scale(1).step();
- this.setData({
- AvatarShow:animation.export()
- })
- <image class="avatar" animation="{{AvatarShow}}" src="{{userInfo.avatarUrl}}"></image>
這樣的,但是我想讓這個動畫執行完畢了以后,控制
- <text class="userinfo-nickname">歡迎您:{{userInfo.nickName}}</text>
其他的組件做動畫效果應該怎么做呢?
復制代碼
- rotateThenScale: function() {
- this.animation.rotate(Math.random() * 720 - 360).step()
- .scale(Math.random() * 2).step()
- this.setData({ animation: this.animation.export() })
- setTimeout(function() {
- this.animation2.rotate(Math.random() * 720 - 360).step()
- .scale(Math.random() * 2).step()
- this.setData({ animation2: this.animation2.export() })
- }.bind(this), 3000)
- },
比如這個是我修改的官網示例,animation不同就可以控制不同的組建了,這個相當於獲取了界面元素
