1,拿到接口文档搞懂需要传递的参数 以及能够接收到的响应信息
{"methodName":"getVersion","requestData":{}}{"methodName":"changPwd","requestData":{"clientNo":"001","oldPassword":"343432","newPassword":"3343434"}}{"methodName":"terminalLogin","requestData":{"pinCode":"1111111"}}{"methodName":"clientLogin","requestData":{"clientNo":"001","password":"343432"}}{"methodName":"sellTicket","requestData":{"gameNo":"85","multiBetCnt":2,"multiDrawCnt":1,"details":"01+02+03+04+05+06+07;08+09+10+11+12+10+11","replicateFlag":0,"selectionTypeCode":20,"pickMethod":1}}
2, 在service层中写一个方法 ,这个方法能够在viewmodel中进行进行调用
3, 正常来说 在service层中这个方法应该这样写
@ActivityScopedclass SuperLottoBetService @Inject constructor(){suspend fun sellTicket(gameNo: String,multiBetCnt: Int,multiDrawCnt: Int,details: String,replicateFlag: Int,selectionTypeCode: Int,strategy :Int,pickMethod: Int,groupIndex: Int,extraBet: Boolean): PosResult<*>? {return BetwinNativeWrapper.wrapper2("sellTicket", SellTicketInputData(gameNo,multiBetCnt,multiDrawCnt,details,replicateFlag,selectionTypeCode,strategy,pickMethod,groupIndex,extraBet))}}
在函数的声明之前,要使用 suspend 这个是表明和协程相关
在这个方法里面 将外面传入的 参数传递进来,将这些参数封装成一个类,然后通过构造函数的方式 就可以得到这个参数对象
这个类示例如下(一定要加上 序列化相关的标志):
/*** description: 售票请求体* author: wanglinc* create time: 2021/3/8 10:18**/@Parcelizedata class SellTicketInputData @Inject constructor(var gameNo: String,var multiBetCnt: Int,var multiDrawCnt: Int,var details: String,var replicateFlag: Int,var selectionTypeCode: Int,val strategy :Int,var pickMethod: Int,var groupIndex: Int,var extraBet: Boolean) : Parcelable
在service中的方法会调用BetwinNativeWrapper.wrapper2这个方法,这个方法有两个参数,第一个参数是方法名(这个方法名我感觉最好是能够从始至终保持一致比较好),第二个就是需要传递的实际的数据信息
