Android商城开发(一)——一次活动页需求引发的危机感
本文出自:https://blog.csdn.net/DT235201314/article/details/81027990
一丶概述
本文講述商城活動頁需求解決過程,及一些個人想法(危機(jī)感),提供問題解決方法及核心代碼。
二丶活動頁開發(fā)必備技能
1.切圖
2.js h5
3.Android webview
4.Android和js方法互調(diào)
三丶現(xiàn)狀陳述
個人:會Android,webview只做過簡單的頁面打開,沒做過交互;會js(呵呵,好像已經(jīng)忘了吧),會復(fù)制粘貼;切圖不會,可以學(xué),Android和js交互,可以學(xué)(兩篇博客搞定)。
需求:1.秒殺活動(主要,后面文章再說);2.原生活動頁改為js頁面(本文重點(diǎn))
項目:15年底的外包半成品項目,閑置至2018年初,領(lǐng)導(dǎo)拍板重視緊急上線(緊急改BUG咯),4月原維護(hù)同事辭職,商城項目由我主要負(fù)責(zé)(之前有看代碼,沒負(fù)責(zé)開發(fā)),秒殺活動發(fā)版時間:暫定下周五*(不到一周時間,評估:時間不足)。
行動:周末加班一天。
四丶實際操作
1.查看公司內(nèi)購項目“碰碰貓”(混合開發(fā),已交給前段組負(fù)責(zé))。
問題:1.使用httpClient,Android studio編譯報錯。(可以說項目已經(jīng)很久沒維護(hù)更新了)2......
說說碰碰貓,升級空間非常大,功能點(diǎn)很多沒完善,有提過需求卻一直擱淺...
可能原因:項目已交付給前段人員維護(hù),不屬于移動組項目。新需求需要協(xié)作開發(fā),需領(lǐng)導(dǎo)協(xié)調(diào)辦公。很久沒維護(hù)的項目,網(wǎng)絡(luò)框架,Android studio配置等都得更新,工作量不小項目卻是掛在別的組(容易被當(dāng)皮球)。
2.兩篇文章搞定需求
理論篇:Android:你要的WebView與 JS 交互方式 都在這里了
實戰(zhàn)篇:Android與HTML+JS交互入門
兩篇文章講得很詳細(xì),后面再說相關(guān)技術(shù)
另外兩篇文章就能解決需求,可見自己的可替代性很高。
3.切圖,一下真還學(xué)不會,拜托同事幫忙,驚訝的發(fā)現(xiàn)居然就是橫橫橫橫豎5下搞定,簡單的還是能學(xué)會的。
4.尋找js商城模板(后面會粘貼代碼)還是交給同事,居然幾分鐘就搞定了。須快速上手。
五丶原生開發(fā)vs混合開發(fā)
原生·開發(fā):
優(yōu)點(diǎn):更流暢,只需移動端(一個人)維護(hù)
缺點(diǎn):活動更新,另寫頁面,復(fù)用性不高,需重新發(fā)版(如果設(shè)計圖變化不大,顯示模板相同可不發(fā)版)
混合開發(fā):
優(yōu)點(diǎn):活動更換只需要更換js頁面,不需要發(fā)版
缺點(diǎn):必要時需要移動端,前段同時維護(hù)
六丶核心代碼
Android提供給js的接口,傳值為空跳轉(zhuǎn)到主頁面,傳值帶參數(shù)跳轉(zhuǎn)到商品詳情頁面
@JavascriptInterface public void startFunction(final String text,final String text1) {if("".equals(text)&&"".equals(text1)){Intent intent = new Intent(this, MainActivity.class);startActivity(intent);}else {Intent intent = new Intent(this, DetailActivity.class);intent.putExtra(KeyContants.KEY_INENT_PRODUCT_ID, text);intent.putExtra(KeyContants.KEY_INTENT_PROMOTION_PRODUCT_ID, text1);startActivity(intent);} }商城js模板
<%@page contentType="text/html; charset=utf-8" pageEncoding="UTF-8" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>預(yù)售活動</title> </head><body style="text-align:center; margin:0; padding:0; background-color: black; "> <img src="${pageContext.servletContext.contextPath}/static/promotion/img/51/ys-wap.jpg" style="width: 100%;" border="0" usemap="#Map" onClick="return false;"/> <map name="Map" id="CribMap"><area shape="rect" coords="---" id="---" /></map> </body><script type="text/javascript">var ua = navigator.userAgent.toLowerCase();if (/iphone|ipad|ipod/.test(ua)) {document.getElementById("area01").onclick = function() { window.webkit.messageHandlers.callFunction.postMessage("{ \"productId\":\"---\",\"promotionId\":\"\" }") };document.getElementById("area20").onclick = function() { window.scrollTo(0,0) };document.getElementById("area21").onclick = function() { window.webkit.messageHandlers.backAction.postMessage("") };} else {document.getElementById("area01").onclick = function() { window.android.startFunction('---','') };document.getElementById("area20").onclick = function() { window.scrollTo(0,0) };document.getElementById("area21").onclick = function() { window.android.startFunction('','') };}</script><script type="text/javascript">adjust();var timeout = null;window.onresize = function () {clearTimeout(timeout);timeout = setTimeout(function () { window.location.reload(); }, 100);}function adjust() {var map = document.getElementById("CribMap");var element = map.childNodes;var itemNumber = element.length / 2;for (var i = 0; i < itemNumber - 1; i++) {var item = 2 * i + 1;var oldCoords = element[item].coords;var newcoords = adjustPosition(oldCoords);element[item].setAttribute("coords", newcoords);}var test = element;}function adjustPosition(position) {var pageWidth = document.body.clientWidth;var imageWidth = 640;var each = position.split(",");for (var i = 0; i < each.length; i++) {each[i] = Math.round(parseInt(each[i]) * pageWidth / imageWidth).toString();i++;each[i] = Math.round(parseInt(each[i]) * pageWidth / imageWidth).toString();}var newPosition = "";for (var i = 0; i < each.length; i++) {newPosition += each[i];if (i < each.length - 1) {newPosition += ",";}}return newPosition;} </script> </html>七丶危機(jī)感分析
1.項目:突然重視的商城項目,后期可能不重視。以目前現(xiàn)狀花錢燒個商城APP與阿里京東競爭不可能。
2.項目發(fā)展:可能像內(nèi)購平臺一樣,后期交由前端維護(hù)(事少了,KPI好不了)
3.個人:js不會,切圖不會,說是說可以學(xué)卻一直沒開始學(xué),等著被淘汰
4.趨勢:大前端趨勢
只有不斷學(xué)習(xí)才能防止淘汰
寫在最后微信掃碼提問
如果文章對你有幫助,歡迎點(diǎn)贊關(guān)注
總結(jié)
以上是生活随笔為你收集整理的Android商城开发(一)——一次活动页需求引发的危机感的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用libjpeg进行图片压缩
- 下一篇: android sina oauth2.