关于uniapp开发app的坑(有些可能是app开发都会遇到的),仅做个⼈记录,
⽬前为安卓版本
⾸先第三⽅授权登录(如登录)中的签名为app证书的md5,⽅法按照Dcloud官⽅⾛就完事,Java可以选择下载的,更快,⽤Oracle的贼⿇烦还要注册账户,然后就到了坑,再输⼊密码的时候会发现输⼊的内容不显⽰,⼀度怀疑⼈⽣,后来发现只是是隐藏了⽽已,为了安全…*
所有页⾯样式失效还是样式与⼩程序不符先想想这个页⾯有没有input,video,textarea这类使⽤了原⽣组件的组件,解决办法官⽅有,但看不懂,笨办法是使⽤v-if来隐藏,然后v-else写个假的放上⾯,⽤的时候显⽰真的,其他时候显⽰假的*
还有显⽰隐藏样式出问题想想有没有⽤v-show,换成v-if,还有什么属性不能为null的报错,对象最好初始化写成空{},⽽不是null*云端打包时,videoplayer项如果使⽤到video必须打钩,其他能⼒类似,还有uni-app Error: Cannot find module ‘node-ipc’ 把uni-app编译插件卸载重装,还有编译sdk与打包sdk版本不⼀样,但实际上hbuilderx已经是最新版也可以这样操作*
新浪开发的签名为证书md5去掉:并且字母全部⼩写,必须提供下载地址,下⾯是驳回理由
不能只⽤弹出⽅式提供下载,安卓客户端下载必须要有对应的下载页⾯和下载按钮。,应⽤地址处请填
写客户端专⽤下载页⾯或在软件商店页⾯地址(⽹盘,论坛页⾯⽆效)
现在的各⼤市场上架app需要软件著作权证书,最好提前备好,应⽤宝上架需要隐私政策截图,所以现在软件的⽤户协议和隐私政策⼏乎必备
*分享这块⽬前完成了qq、、朋友圈分享,切记分享图⽚(视频)地址正确,不为空,不然会返回出神奇的错误信息(fail: {“errMsg”:“share:fail ask.dcloud/article/287”}),新发现的问题:分享时图⽚过⼤会分享失败,新浪分享需要回调地址,⿇烦,抖⾳对图⽚视频分辨率有限制,坑货
⽀付功能⼏乎全是后端的活,前端⼀个questPayment就⾏,官⽅有php的demo
⽀付宝⽀付时出现路ALIN10146错误,原因是应⽤未上架(指的是阿⾥开放平台那申请的应⽤),阿⾥的查错⽂档挺详细了
登录部分,登录uni.login可以直接得到后端请求所需token,直接拿来⽤就⾏,不必code换token这么复杂,dcloud⽜逼,其他的第三⽅登录没有做
对于有些可能是app需要⼩程序不需要的页⾯(或者相反),采⽤官⽅⽂档的条件编译是极佳的选择
整体⽬录条件编译
如果想把各平台的页⾯⽂件更彻底的分开,也可以在uni-app项⽬根⽬录创建platforms⽬录,然后在下⾯进⼀步创建app-plus、mp-weixin等⼦⽬录,存放不同平台的⽂件。
对于第三⽅功能,最好做下判断,如果没有此应⽤跳转到下载地址
// 判断⽤户是否安装抖⾳
export function checkDouyin(instal){
if(plus.runtime.isApplicationExist({
pname:'com.ss.android.ugc.aweme',
action:'wb1462309810://'
})){
if(instal){
instal()
}
console.log("抖⾳应⽤已安装");
}else{
// uninstal()
plus.runtime.openURL('www.douyin/');
console.log("抖⾳应⽤未安装");
}
}
// 判断⽤户是否安装⽀付宝
export function checkAlipay(instal){
if(plus.runtime.isApplicationExist({
pname:'android.AlipayGphone',
action:'alipay://'
})){
if(instal){
instal()
}
console.log("⽀付宝应⽤已安装");
}else{
// uninstal()
console.log("⽀付宝应⽤未安装");
plus.runtime.openURL('d.alipay/?nojump=true');
}
}
// 判断⽤户是否安装QQ
export function checkQQ(instal){
if(plus.runtime.isApplicationExist({
pname:'bileqq',
action:'mqq://'
})){
if(instal){
instal()
}
console.log("QQ应⽤已安装");
}else{
// uninstal()
console.log("QQ应⽤未安装");
plus.runtime.openURL('im.qq/mobileqq/touch/android/'); }
}
// 判断⽤户是否安装新浪微博
export function checkSinaweibo(instal){
if(plus.runtime.isApplicationExist({
pname:'com.sina.weibo',
action:'sinaweibo://'
})){
if(instal){
instal()
}
console.log("新浪微博应⽤已安装");
}else{
// uninstal()
plus.runtime.openURL('c.weibo/');
console.log("新浪微博应⽤未安装");
}
}
// 判断⽤户是否安装,传⼊判断函数
export function checkWeixin(instal){
if(plus.runtime.isApplicationExist({
pname:'',
action:'weixin://'
})){
if(instal){
if(instal){
instal()安卓软件签名工具
}
console.log("应⽤已安装");
}else{
/
/ uninstal()
//
plus.runtime.openURL('weixin.qq/d ');
console.log("应⽤未安装");
}
}
如果给uni.showToast不加title的话,会显⽰成⼀个⼩⿊点
然后功能差不多了,等软著上架…修bug…
关于webview⽅⾯,app的webview布局采⽤flex布局,千万不要⽤浮动,关于app内与webview互相传参可以参考
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论