uni app开发App的第三部分分享了实际项目开发中遇到的陷阱
app开发
APP开发
浏览:1385 次

因为这是第一次使用uni app开发app,所以我们在实际项目中仍然会遇到很多问题。尽管一些问题仍然存在,但通过我们的不懈努力,大多数陷阱已基本解决。今天,我们来谈谈已经解决的一些问题。
(1) 区分开发环境和在线环境
过去,在使用vue-cli时,基本上配置了环境变量。我很懒,对webpack中配置环境变量的机制没有深入了解。可以在开发和构建中配置变量。现在在使用uni app之后,老板突然提出需要区分开发环境和在线环境。毕竟,这是一项基本要求,很难拒绝。我开始仔细查看uni-app文档,最终找到了一种通过流程区分运行环境的方法。env NODE_ env可以判断操作环境。有两种类型(开发环境和生产环境)。运行编译的代码是开发环境,发布编译的代码则是生产环境。然后,您可以单击App。vue中的onLanuch钩子功能确定测试服务器的域名(如果是开发环境)将被替换,如果是生产环境,则在线服务器的域名将被替换。然后通过setStorage在本地保存url,最后通过其他需要调用接口的页面上的getStorage获取。这也是我自己想出的方法。虽然解决需求有点繁琐,但也有点低,但我想留在未来,慢慢改进。如果你们有更好的方法,请过来给我一些建议。非常感谢你!
(2) App自动登录
如今的App基本上都有自动登录功能。老人提出了这样的要求。因为他没有App开发经验,他苦思冥想了一段时间,终于想出了一个解决方案。用户登录成功后,将用户的登录信息保存在app本地,然后在用户首次加载app时前往后台判断用户的登录状态。如果用户未登录,将调用用户的本地登录信息以自动帮助用户登录。
(3) 方法封装
我相信作为前端用户的您应该熟悉封装。他们必须或多或少封装自己的方法组件。接下来我想说的是在uni-app中封装一些基本方法。首先,创建一个js文件来存储封装方法。方法完成后,通过导出默认值导出该方法,并直接从需要调用该方法的其他页面导入,以便可以导入该方法。接下来,代码
const formatResponse=函数(响应){
常量状态=response.statusCode;
常量数据=响应.data;
常量消息=数据.msg;
如果(状态===200&&msg.code===0){
返回data.data;
}其他{
如果(状态!==200){
uni.show吐司({
标题:“网络异常:”+状态
});
}其他{
如果(消息代码===50401){
var user=uni.getStorageSync(“用户”);
var phone=用户电话;
var pass=用户密码;

console.log(电话)
console.log(传递)
if(电话和通行证){
单一请求({
网址:“……”,
方法:“POST”,
数据:{
名称:电话,
密码:pass
},
成功:函数(res){
console.log(JSON.stringify(res))
格式响应(res)
},
失败:函数(res){
console.log(JSON.stringify(res))
},
});
}其他{
uni.show模式({
标题:'提示',
内容:“您尚未登录,请先登录”,
show取消:true,

成功:函数(res){
如果(res.confirm){
uni.navigate收件人({
url:“/pages/login/login”
});
}
}
});
}
回来
}
uni.show吐司({
标题:msg.info
});
}
}
}
导出默认值{
格式响应
}
这是我自己封装的处理响应的一般方法。当然,还有许多其他方法可以封装。我不会全部列出。
(4) 打包小程序
uni app支持打包小程序,所以老板让我把我们的app打包成小程序。然而,他们遇到了许多障碍。

(1) 首先,因为我们的小程序使用了一些嵌入web视图的H5页面,所以App中的web视图有什么问题?但是,如果我们需要使用web视图在小程序中嵌入H5,则必须在微信后台的安全域名中配置src的域名。最后,解决方案是通过nginx服务器的代理来解决问题。
(2) 分包预加载,因为以前没有考虑小程序的问题,所以所有资源都放在一个页面文件夹中。然而,结果是小程序打包和上传时出现了问题。上载小程序时,最大要求