微信小程序webservice
1. 微信小程序可以用tomcat搭建伺服器嗎
你好,不限制。小程序前端代碼傳到騰訊。後端不限制,只要能運行網站,都可以。
2. 微信小程序給webview傳個參數
你從上個頁面來到webView的時候將id參數傳到webView當前頁面,也或者你直接將帶id參數的url拼接好傳過來,然後webView頁面在onload裡面獲取參數,如果只傳id,那麼就通過options.id獲取到傳過來的id然後拼接url,再setData,如果直接傳拼接過來的url,那麼就直接options.url 再setData就行了
3. 小程序調用webservice返回值的問題
這是數據序列化問題,返回值會被序列化為xml或json
1、你可以嘗試修改序列化方式
2、在前端以json處理是最好的
4. 2018年10月微信小程序上傳文件的問題webapi方式
必須在微信公眾平台填寫請求,下載,上傳,websocket 域名,必須是SSL加密的
5. 如何讓微信小程序鏈接websocket
關於websocket的設置,API里邊已經給了,
wx.connectSocket(OBJECT)
創建一個 WebSocket 連接;一個微信小程序同時只能有一個 WebSocket 連接,如果當前已存在一個 WebSocket 連接,會自動關閉該連接,並重新創建一個 WebSocket 連接。
OBJECT參數說明:
參數
類型
必填
說明
url String 是 開發者伺服器介面地址,必須是 wss 協議,且域名必須是後台配置的合法域名
data Object 否 請求的數據
header Object 否 HTTP Header , header 中不能設置 Referer
method String 否 默認是GET,有效值為: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
success Function 否 介面調用成功的回調函數
fail Function 否 介面調用失敗的回調函數
complete Function 否 介面調用結束的回調函數(調用成功、失敗都會執行)
示例代碼:
wx.connectSocket({
url: 'test.php',
data:{
x: '',
y: ''
},
header:{
'content-type': 'application/json'
},
method:"GET"
})
wx.onSocketOpen(CALLBACK)
監聽WebSocket連接打開事件。
示例代碼:
wx.connectSocket({
url: 'test.php'
})
wx.onSocketOpen(function(res) {
console.log('WebSocket連接已打開!')
})
wx.onSocketError(CALLBACK)
監聽WebSocket錯誤。
示例代碼:
wx.connectSocket({
url: 'test.php'
})
wx.onSocketOpen(function(res){
console.log('WebSocket連接已打開!')
})
wx.onSocketError(function(res){
console.log('WebSocket連接打開失敗,請檢查!')
})
wx.sendSocketMessage(OBJECT)
通過 WebSocket 連接發送數據,需要先 wx.connectSocket,並在 wx.onSocketOpen 回調之後才能發送。
OBJECT參數說明:
參數
類型
必填
說明
data String/ArrayBuffer 是 需要發送的內容
success Function 否 介面調用成功的回調函數
fail Function 否 介面調用失敗的回調函數
complete Function 否 介面調用結束的回調函數(調用成功、失敗都會執行)
示例代碼:
var socketOpen = false
var socketMsgQueue = []
wx.connectSocket({
url: 'test.php'
})
wx.onSocketOpen(function(res) {
socketOpen = true
for (var i = 0; i < socketMsgQueue.length; i++){
sendSocketMessage(socketMsgQueue[i])
}
socketMsgQueue = []
})
function sendSocketMessage(msg) {
if (socketOpen) {
wx.sendSocketMessage({
data:msg
})
} else {
socketMsgQueue.push(msg)
}
}
wx.onSocketMessage(CALLBACK)
監聽WebSocket接受到伺服器的消息事件。
CALLBACK返回參數:
參數
類型
說明
data String/ArrayBuffer 伺服器返回的消息
示例代碼:
wx.connectSocket({
url: 'test.php'
})
wx.onSocketMessage(function(res) {
console.log('收到伺服器內容:' + res.data)
})
wx.closeSocket()
關閉WebSocket連接。
wx.onSocketClose(CALLBACK)
監聽WebSocket關閉。
wx.connectSocket({
url: 'test.php'
})
//注意這里有時序問題,
//如果 wx.connectSocket 還沒回調 wx.onSocketOpen,而先調用 wx.closeSocket,那麼就做不到關閉 WebSocket 的目的。
//必須在 WebSocket 打開期間調用 wx.closeSocket 才能關閉。
wx.onSocketOpen(function() {
wx.closeSocket()
})
wx.onSocketClose(function(res) {
console.log('WebSocket 已關閉!')
})
Bug & Tip
tip: createSocket 鏈接默認和最大超時時間都是 60s
tip: 網路請求的 referer 是不可以設置的,格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 為小程序的 appid,{version} 為小程序的版本號,版本號為 0 表示為開發版。
在app.js的onshow中打開websocket,並設置在錯誤和失敗的監聽,當連接斷開了的時候需要進行重新連接
在app.js的onhide的關閉websocket
這樣避免用戶打開小程序之後通過Home鍵退出的時候防止websocket的斷開
6. 微信小程序和WebApp有什麼區別
微信小程序開發還有這些特徵:
1、微信小程序的入口不在微信,而是在二維碼里,小程序的啟動更多是來源於二維碼掃描;
2、微信小程序不需要到應用商店去下載、不需要訂閱、不能推送消息;
3、和訂閱號的媒體屬性不同,由於在傳播、分享上存在一定的限制,「小程序」主打服務屬性——簡單、干凈、用完即走是它的天然特徵;
有了微信的入口加持,可以輕易被用戶搜索到,因此使用時,可以在小程序中嵌入最吸引人的功能,藉此向APP導入重度用戶。
有人可能會認為,微信小程序開發類似於經常接觸的H5頁面,WebApp或手機網站,只要將原有代碼稍微改一下,就可以變成微信小程序,其實不是這樣的。微信小程序開發相當於重新做了一個不同於傳統形式的APP,從開發、設計、測試、升級都是單獨的一套。微信小程序和原生APP以及輕應用都不同,它更像是微信功能的延伸,更加註重場景化。
但從本質上講,它依舊沒有擺脫原生APP開發以及輕應用所面臨的兩個問題:基於H5的特性和功能上的限制,微信小程序開發雖然無需安裝可以即開即用,能夠很大地減少手機的存儲空間佔用,但是對於網路的依賴也更加嚴重,輕量的定位在功能體驗上也會不如傳統APP開發出色。
7. html網頁怎麼在微信小程序web
使用WxParse可以將html轉成小程序的wxml,不過我還是建議自己手工重寫一遍代碼,小程序專代碼跟html的差不屬多,小程序的標簽更少,原生標簽功能更強大,如果你已經會寫普通web前端,小程序大同小異,一看就會了
8. 微信小程序配置websocket環境及如何在小程
首先簡單介紹一下什麼是websocket
一、WebSocket是HTML5出的東西(協議),也就是說HTTP協議沒有變化,或者說沒關系,但HTTP是不支持持久連接的(長連接,循環連接的不算)
首先HTTP有1.1和1.0之說,也就是所謂的keep-alive,把多個HTTP請求合並為一個,但是Websocket其實是一個新協議,跟HTTP協議基本沒有關系,只是為了兼容現有瀏覽器的握手規范而已,也就是說它是HTTP協議上的一種補充可以通過這樣一張圖理解
這個就是效果
既然可以使用了,說明環境沒問題了,接下來看在小程序如何使用了
我為了方便就用button按鈕發起請求了
wxml代碼
<button bindtap="websocket" >websocket鏈接</button>1
js代碼
Page({
data:{
path:''
},
onLoad:function(opt){
},
websocket:function(){
var msg="你猜"
var socketOpen=true
wx.connectSocket({
url: 'ws://127.0.0.1:8080/'
})
wx.onSocketOpen(function(res){
wx.sendSocketMessage({
data:msg
})
})
wx.onSocketMessage(function(res) {
console.log(res.data)
})
}
})
注意在微信上用的時候可以先測試一下,然後在服務端加一個返回數據的函數(那個函數就在我發的代碼中,但是不在服務端,你們好好看看就會發現的),剩下就沒什麼可說的,這是最簡單的了,如果要深入的說,那是說不完的,好了,不懂可以在下方評論!
9. 微信小程序 websocket sockettask
微信小程序,簡稱CX,是一種不需要下載安裝即可使用的應用。微信小程序可以幫助開發者快速的開發小程序,微信小程序可以在微信內被便捷地獲取和傳播;是一種不需要下載安裝即可使用的應用小程序,和原有的三種公眾號是並行的體系。2017年6月14日小程序新推星標功能。小程序、訂閱號、服務號、企業號是並行的體系。