开发一个app有多难

开发一个app有多难,第1张

先说一点,我是前端工程师,所以开发app使用的是H5的东西,不是原生安卓和IOS,当然还有个很火热的Flutter,虽然没完全投入使用。所以我以下说的只针对前端的想开发app的朋友。当然我也刚开发了几个,还有很多经验不足,如果写的有问题希望指正。

其实我做开发刚刚一年多的时间,说实话我感觉如果只是开发市面上已经有的东西,还是相对容易的,现在有很多成熟的框架,有很不错的api借鉴,网上也有很多资源,很多时候都可以查找到。你遇到问题之前没准有很多前辈已经遇到过,多多上官方论坛,跟大家交流学习。我感觉真正困难的东西是你能不能做下去,不是说碰到个问题想都不想就找人问,这样的态度我不推荐。即使你的问题很简单,最后发现原来只是两行代码的事,但是这个结果也源于你之前的不断追问,知识学到了才是自己的

跟大家简单分享下我的经历。第一个app是用的mui开发物流手持,简单说就是接单完单上传信息,查找历史单等等。公司就我一个前端,做项目之前mui我也才看了一周左右。确实只不过是html页面而已,但是也有很多调用原生的东西。记得那个时候每天都工作到很晚,简单的登录列表显示页面,这些还是好写的。晚上下班之后我就留在公司查阅怎么调用系统摄像头,怎么使用二维码,怎么调用支付收款。也很紧张,自己从零开始做没人带。后来看了官方集成的html5+,很多都有样例,当然也会结合自己的功能稍作改动。也加入了几个qq群,虽然说有很多扯淡,但是也有很多人在探讨技术。所以资源很多,自己主动去找。后来在开发的时候,开发效率就很快了。

当时有个很麻烦的事是调用地图。我是pc和app同时做的,pc派送,app接单,用的都是高德地图jsapi。但是到手机上就不好使了,我也不知为什么。也找了很多东西,但是打包出来的基本是地图不显示。问了有个人的显示,再细问他呢,他就说我也是刚弄,我的就能出来,人家厉害,我能说什么,自己捅咕呗。我清晰地记得弄了三周,别的布局什么写的也很快,所以经常弄地图了。最后真的是瞎猫碰上死耗子了,我真的不懂为什么是不是跟软件版本还是什么有关系。我没用sdk但是引了百度的地图sdk,jsapi使用的高德的,显示成功。当然很多人会疑问,你们不要纠结这个,重要的是效果一定要出来,我说出来可能很容易,也可能是运气,但是这一些都是建立在前期自己的努力思考,查阅资料。原来是看书明白了稻盛和夫,现在是实践中理解了稻盛和夫先生。

现在我在使用mui团队开发的另一个框架uniapp开发一个简易版的头条。也是文章,专家,订阅,评论等等内容。开始时候自己慢慢看文档,看官方例子,动手去书写,深入了一下flex布局。公用的分装,优化promise请求。当然也遇到很多坑,像软键盘d出对布局的挤压,这里面没有window,document这些浏览器的对象了。像富文本解析,还要对解析出来的文本字体放大缩小,点击,复制粘贴。uniapp基本是基于微信小程序的api语法,所以自己也去搞去找,上个月忙了整月,现在基本都可以了。不怕走歪路,走多了就知道怎么思考了,怎么解决问题了。

我只是个小开发,仍然在学习,在发现。希望跟大家齐一进步。如果有想了解得东西可以给我留言,我也希望去分享自己的经历。百度网盘也有些教程,有需要的小伙伴可以找我,不需关注。谢谢阅读!

1、页面初始化时,通过扩展参数传值;

mui在初始化页面时,提供了extras配置参数,通过该参数可以设置页面参数,从而实现页面间传值;

mui框架在如下几种场景下,会执行页面初始化 *** 作:

- 通过muiopenWindow()打开新页面(若目标页面为已预加载成功的页面,则在openWindow方法中传递的extras参数无效);

- 通过muiinit()方法创建子页面;

- 通过muiinit()方法预加载页面;

- 通过muipreload()方法预加载页面

示例,假设我们有如下需求:

在首页中打开关于页面时,传递当前产品名称及版本号,然后在关于页面中读取这两个参数并显示出来;

首页实现代码:

muiopenWindow({

url:'infohtml',

id:'infohtml',

extras:{

name:'mui',

version:'058'

}

});

关于页面实现代码:

var self = pluswebviewcurrentWebview();

var name = selfname;

var version = selfversion;

2、页面已创建,通过自定义事件传值

在项目开发中遇到这样的功能,要求实现列表页动态加载功能,在实现过程中遇到一些小小插曲,下面小编给大家详细说明下解决方法:

首次加载时可以获取成功,再次加载失败,通过chrome调试发现img

data-lazyload

属性没改变

调试的时候发现了bug

$fnimageLazyload

=

function(options)

{

var

lazyloadApis

=

[];

thiseach(function()

{

var

self

=

this;

var

lazyloadApi

=

null;

if

(self

===

document

||

self

===

window)

{

self

=

documentbody;

}

//对,bug就在这,判定时如果body已有该属性,就不在加载了,整体的代码没看明白,注释太少了啊

var

id

=

selfgetAttribute('data-imageLazyload');

if

(!id)

{

id

=

++$uuid;

$data[id]

=

lazyloadApi

=

new

ImageLazyload(self,

options);

selfsetAttribute('data-imageLazyload',

id);

}

else

{

lazyloadApi

=

$data[id];

}

lazyloadApispush(lazyloadApi);

});

return

lazyloadApislength

===

1

lazyloadApis[0]

:

lazyloadApis;

}

问题找到了,那么就在再次加载数据时,清除该属性就ok了

documentbodyremoveAttribute('data-imagelazyload');

mui(document)imageLazyload({

placeholder:

'//images/img_head3png'

});

以上所述是小编给大家介绍的MUI

解决动态列表页懒加载再次加载不成功的bug问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

数据主要是用mui 封装好的ajax获取json数据,然后用js拼接,把html代码加载到页面。

mui框架基于htm5plus的XML>

muiinit();

muiplusReady(function(){

//根据id 获取 点击的按钮,然后添加点击方法

documentgetElementById("firtItem")addEventListener('tap',function(){

muiopenWindow({

url:'detailhtml',

//后期可以根据id返回到对应页面

id:"newYeMian"

});

})

})

以上就是关于开发一个app有多难全部的内容,包括:开发一个app有多难、mui 怎么获取openwindow 传值、MUI 解决动态列表页图片懒加载再次加载不成功的bug问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9527319.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存