Weex 项目总结
在項(xiàng)目中,我覺得暫時(shí)有兩個(gè)地方需要總結(jié)一下,一個(gè)是weex內(nèi)部的數(shù)據(jù)請(qǐng)求,一個(gè)是原生方法得調(diào)用。數(shù)據(jù)請(qǐng)求,在PC端調(diào)試的話會(huì)有跨域問題,在手機(jī)端沒有跨域問題。原生方法需要原生開發(fā)者根據(jù)?Weex文檔?寫一個(gè)module,再暴露出一個(gè)方法給前端開發(fā)調(diào)用。
1、數(shù)據(jù)請(qǐng)求
數(shù)據(jù)請(qǐng)求根據(jù)文檔引入該模塊
const stream = weex.requireModule('stream');這時(shí)你就可以使用stream去發(fā)請(qǐng)求了,不過寫法要和官網(wǎng)上一樣才可以,我試的時(shí)候是這樣的,如果你有其他的方法,麻煩留個(gè)鏈接,讓我也學(xué)習(xí)一下。官網(wǎng)的上的請(qǐng)求方式,太繁瑣,每次都需要手動(dòng)引入,寫法不是很靈活,下面有一個(gè)我自己整理的
const stream = weex.requireModule('stream'); const modal = weex.requireModule('modal'); const platform = weex.config.env.platform.toLowerCase(); const storage = weex.requireModule('storage'); let apiRoot if (platform === 'web' || platform === 'ios'|| platform === 'android '){apiRoot = window.location.origin } else {if (process.env === 'test') {// 測(cè)試環(huán)境域名apiRoot = ''} } export default {install (Vue) {function http (OPTIONS = {}) {let DEFAULT_OPTION = {method: 'GET',type: 'text', // json、text、jsonpheaders: {}};let options = Object.assign(DEFAULT_OPTION, OPTIONS);options.url = apiRoot + options.url;if (options.method === 'GET') {if (options.params) {let paramStr = Object.keys(options.params).reduce((acc, key) => `${acc}${key}=${options.params[key]}&`, '?')options.url = options.url.concat(paramStr).slice(0, -1)}} else if (options.method === 'POST') { if (options.body) {options.headers['Content-Type'] = 'application/json';}}else if(options.method === 'DELETE'){if (options.body) {options.body = JSON.stringify(options.body);options.headers['Content-Type'] = 'application/json';}}return new Promise((resolve, reject) => {stream.fetch(options, (response) => {if (response.ok) {if(response.data !==''){try {response.data = JSON.parse(response.data);}catch(err) {response.data = response.data;}}resolve(response.data)} else {reject(response)}})})}Vue.prototype.$http = http} }你可以和在vue項(xiàng)目中一樣的方式去發(fā)請(qǐng)求。這里需要注意下自己要定義后端返回的數(shù)據(jù)類型,根據(jù)自己需求自己去改。一些錯(cuò)誤請(qǐng)求攔截也可以這里進(jìn)行處理。
2、原生方法的調(diào)用
weex.requireModule("event").showParams("hello Weex")weex.requireModule("event").showParams("data",event =>{//對(duì)原生方法返回的參數(shù)進(jìn)行處理 })我本機(jī)是Windows系統(tǒng),ios打包我找的原生同事幫的忙
暫時(shí)就總結(jié)到這里,等這段時(shí)間忙完,再回來補(bǔ)充
有不足之處,請(qǐng)多多指教
總結(jié)
- 上一篇: CSS 实现图片横向拖动
- 下一篇: 给数组里面的对象添加一个新的数据