-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 營銷推廣 > 專題列表 > 正文
前端接口調(diào)用(前端接口調(diào)用cacel)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于前端接口調(diào)用的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,有小程序、在線網(wǎng)頁版、PC客戶端和批量生成器
問友Ai官網(wǎng):https://ai.de1919.com。
本文目錄:
前端調(diào)用藍(lán)牙接口怎么設(shè)置
我實(shí)現(xiàn)的小程序模塊自動(dòng)連接(根據(jù)需要,可改手動(dòng)),是在小程序初始化完成時(shí)開始自動(dòng)調(diào)用執(zhí)行。大致流程:
開啟藍(lán)牙適配;
獲取藍(lán)牙適配器狀態(tài),判斷設(shè)備藍(lán)牙是否可用;
判斷藍(lán)牙適配器可用時(shí)開啟掃描藍(lán)牙設(shè)備和開啟獲取已連接的藍(lán)牙設(shè)備;
如果開啟掃描藍(lán)牙設(shè)備失敗 5 s 后,自動(dòng)再次開啟掃描;
開啟掃描藍(lán)牙設(shè)備成功后,開啟監(jiān)聽已掃描的設(shè)備;
如果已掃描到的新設(shè)備,包含特定名稱規(guī)律,則開始連接該設(shè)備;
開啟獲取已連接藍(lán)牙設(shè)備,成功后,連接包含特定名稱規(guī)律的設(shè)備;
兩者都無法搜索到相應(yīng)設(shè)備,則等待 5 s,重新搜索;
開始連接某設(shè)備時(shí)停止掃描設(shè)備,停止循環(huán)獲取已連接設(shè)備;
連接成功后停止掃描設(shè)備,停止循環(huán)獲取已連接設(shè)備。
下面,我們一步步來完成這個(gè)流程。
開始連接藍(lán)牙設(shè)備
1. 開啟連接
app.js的onLaunch()方法里中,我們調(diào)用this.startConnect();來開啟連接,彈出提示框,進(jìn)行配對。如果失敗,則提示設(shè)備藍(lán)牙不可用,同時(shí)開啟藍(lán)牙適配器狀態(tài)監(jiān)聽。
2. 獲取本機(jī)藍(lán)牙狀態(tài)
調(diào)用this.getBluetoothAdapterState()獲取本機(jī)藍(lán)牙適配器狀態(tài),判斷是否可用。若available為false,則為用戶沒有開啟系統(tǒng)藍(lán)牙。
同時(shí),判斷程序還沒有開始搜索藍(lán)牙設(shè)備,調(diào)用this.startBluetoothDevicesDiscovery()開始掃描附近的藍(lán)牙設(shè)備,以及this.getConnectedBluetoothDevices(),獲取本機(jī)已配對的藍(lán)牙設(shè)備。
3. 開始搜索新設(shè)備
開始搜索藍(lán)牙設(shè)備startBluetoothDevicesDiscovery(),提示藍(lán)牙搜索。
4. 獲取已配對的藍(lán)牙設(shè)備
需要注意的是,參數(shù)services(Array)是必填的,但是官方示例中以及各種坑爹 demo 里從沒見過有誰填寫。不填寫這個(gè)屬性此方法,將無法獲取到任何已配對設(shè)備。
如果要調(diào)用此方法,則代表需要連接特定設(shè)備,并且知道該設(shè)備的一個(gè)主服務(wù)serviceId。
如暫時(shí)不知道這個(gè) ID,可以先手動(dòng)連接一次想要連接的設(shè)備,然后獲取service列表,記錄屬性primary為true的值至少一個(gè)。5. 處理搜索功能開啟失敗的情況
如果搜索功能啟動(dòng)失敗,回到第 2 步,重新檢查藍(lán)牙適配器。如果可用,開啟藍(lán)牙搜索功能并開啟發(fā)現(xiàn)附近藍(lán)牙設(shè)備事件監(jiān)聽:this.onBluetoothDeviceFound()。
此方法可自定義過濾一些無效的藍(lán)牙設(shè)備,比如name為空的,或是產(chǎn)品開發(fā)中,需要過濾設(shè)備名稱不含有特定規(guī)律字符串的設(shè)備。
6. 自動(dòng)配對設(shè)備
在第 5 步中發(fā)現(xiàn)了某個(gè)想配對的設(shè)備,則獲取到該設(shè)備的deviceId,然后用this.startConnectDevices()接口,開始配對該設(shè)備。
開啟連接后,為了避免出現(xiàn)沖突,一旦開啟連接,則需要終止掃描附近藍(lán)牙設(shè)備、終止讀取本機(jī)已配對設(shè)備
7. 連接成功后握手
連接成功后,使用this.getService(deviceId)接口,獲取設(shè)備的所有服務(wù)。
8. 讀取服務(wù)的特征值
9. 意外處理
如果掃描到的設(shè)備中沒有想要連接的設(shè)備,可以嘗試使用系統(tǒng)藍(lán)牙手動(dòng)配對,然后再小程序中調(diào)用getConnectedBluetoothDevices()獲取本機(jī)已配對的藍(lán)牙設(shè)備,然后過濾設(shè)備(可能獲取多個(gè)已配對的藍(lán)牙設(shè)備)。
然后,將已獲取的藍(lán)牙設(shè)備deviceId列表放入到一個(gè)數(shù)組中,然后調(diào)用自定義方法this.loopConnect();
思路:通過遞歸調(diào)用獲取已配對藍(lán)牙設(shè)備的,如果獲取到了就去連接,如果devicesId[x]為空,說明上傳調(diào)用時(shí),獲取到的已配對設(shè)備全部連接失敗了。
這時(shí)候,我們需要?jiǎng)t開啟重新獲取已配對藍(lán)牙設(shè)備,并開啟掃描附近藍(lán)牙設(shè)備。
10. 自動(dòng)循環(huán)重試
startConnectDevices('loop', array)方法,是當(dāng)獲取已配對藍(lán)牙設(shè)備進(jìn)行連接時(shí)調(diào)用。
其中的處理邏輯上文已經(jīng)貼出,意思就是在連接失敗后fail方法里累加一個(gè)全局變量,然后回調(diào)loopConnect(array)方法。
11. 手動(dòng)連接
上文介紹的方法是為了直接自動(dòng)連接,如果不需要自動(dòng)連接,可使用方法getBluetoothDevices(),獲取已掃描到的藍(lán)牙設(shè)備的列表。
開發(fā)者可以做個(gè)頁面顯示出設(shè)備名,用戶點(diǎn)擊某個(gè)設(shè)備后,才開始連接。
需要注意的事項(xiàng)
that.serviceId是在初始化時(shí)設(shè)置的,由于對需要連接設(shè)備的主服務(wù)serivceId和各種特征值都是已知的,因此可以這樣做。如果不可知,可以做一個(gè)掃描方法自己檢查特征值的用途。
連接成功后的writeBLECharacteristicValue和openNotifyService操作需要注意,如果同時(shí)開啟這兩項(xiàng)操作要先調(diào)用wirte再開啟notify(原因未知,個(gè)人心得)。
3、經(jīng)提醒,我發(fā)現(xiàn)還可以再完善一下在onBlueToothAdapterStateChange()監(jiān)聽藍(lán)牙適配器狀態(tài),以此判斷連接過程中、連接后用戶開關(guān)了設(shè)備藍(lán)牙。如果判斷到關(guān)了藍(lán)牙,發(fā)出開啟藍(lán)牙的提示;如果監(jiān)聽到開啟了,就重新回到第 1 步。
前端怎么調(diào)用api接口
方法/步驟
先定義一個(gè)簡單的webapi,簡單到差不多直接用vs2010自動(dòng)生成的webapi代碼。
其中的TestModle是一個(gè)簡單的class,如下
public class TestModle
{
public string a { get; set; }
public string b { get; set; }
public string c { get; set; }
}
前端頁面放四個(gè)代表get,post,put,delete的按鈕,在加一個(gè)div顯示返回值
前端代碼中加載jquery,在定義四個(gè)按鈕的click事件
get和post,我習(xí)慣用$.get和$.post,當(dāng)然也能用$.ajax.
get直接返回webapi get的return值,post的話我就不在后端做處理了直接返回傳入的值,這里只做示范
put和delete,只能用$.ajax來處理。
put的話一般用于update某個(gè)id的數(shù)據(jù)信息
delete用于刪除某個(gè)id的數(shù)據(jù),如下圖所示
點(diǎn)擊每個(gè)按鈕,可以在頁面上看到相應(yīng)的效果
前端調(diào)用后端的接口有幾種方式了
一般不存在前端給后端接口的情況,幾乎都是后端給前端接口,所謂接口就是可以通過服務(wù)端部署的機(jī)器提供出來的URL地址進(jìn)行動(dòng)態(tài)的數(shù)據(jù)交互。通常的工作流是后端跟前端協(xié)商定義數(shù)據(jù)接口格式(一般就是JSON格式)形成文檔,后端實(shí)現(xiàn)接口,前端做靜態(tài)的mock(可以是直接在頁面的JS拼假數(shù)據(jù)或者通過JSON server按照真實(shí)調(diào)用服務(wù)的方式集成),后端實(shí)現(xiàn)服務(wù)接口,兩邊都完成后集成聯(lián)調(diào)?,F(xiàn)在有swagger 或者 apiairy 等工具可以更簡化這個(gè)過程web前端怎么調(diào)用api接口
1、首先需要確定第三方的接口的基本信息:地址、請求方式,參數(shù)、返回值,接口模式這里第三方的接口是restful風(fēng)格的,采用get請求。
2、確定好接口的相關(guān)模式之后,這里編寫http的請求,用參數(shù)、請求模式構(gòu)造請求。
3、這里最重要的構(gòu)造http的請求,這里采用CloseableHttpClient,設(shè)置相關(guān)的header,采用HttpResponse接受用戶的返回值。
4、在業(yè)務(wù)類中只需要封裝相關(guān)的請求,把參數(shù)傳入給接口中即可,這里返回jsonObject方便解析使用。
5、調(diào)用api接口還有其他的模式,如圖通過MultiValueMap,封裝參數(shù),構(gòu)造HttpEntity對象,RestTemplate 發(fā)送請求即可。
以上就是關(guān)于前端接口調(diào)用相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
前端頁面優(yōu)化方法(前端頁面優(yōu)化方法是什么)
前端學(xué)費(fèi)一般是多少(學(xué)前端學(xué)費(fèi)多少)
手提袋大小尺寸(手提袋大小尺寸標(biāo)準(zhǔn))
刪除的小紅書筆記還能恢復(fù)嗎(刪除的小紅書筆記還能恢復(fù)嗎蘋果)