frontend
uniapp开发常见问题汇总
2020/06/03 0
# 项目结构
┌─components uni-app组件目录
│ └─comp-a.vue 可复用的a组件
├─hybrid 存放本地网页的目录
├─platforms 存放各平台专用页面的目录
├─pages 业务页面文件存放的目录
│ ├─index
│ │ └─index.vue index页面
│ └─list
│ └─list.vue list页面
├─static 存放应用引用静态资源(如图片、视频等)的目录,注意:静态资源只能存放于此
├─wxcomponents 存放小程序组件的目录
├─main.js Vue初始化入口文件
├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期
├─manifest.json 配置应用名称、appid、logo、版本等打包信息
└─pages.json 配置页面路由、导航条、选项卡等页面类信息
# custom elements
- a ==> navigator
- div ===> view
- span ===> text
# 常用设置
- 隐藏顶部菜单
# 真机调试
- usb 直接安装 apk 文件
# 切换到sdk目录
cd /path/to/sdk/platform-tools
# 使用adb命令安装apk
adb install /path/to/name.apk
# 命令行启动avd
android list avd
emulator -avd 模拟器名称
# 广告
uniad 分为基础广告和增强广告两类,其中基础广告没有限制可直接接入, 增强广告需要 app 上架应用市场
# 开通增强广告
# 生成自有证书
# 安装jdk
...
# 生成keystore文件
keytool -genkey -alias iamceo -keyalg RSA -keysize 2048 -validity 36500 -keystore iamceo.keystore
# 查看内容 (密码:iamceo)
keytool -list -v -keystore iamceo.keystore
查看包名
# 切换到aapt目录
cd path/to/sdk/build-tools/VERSION/
# aapt
aapt dump badging D:\__UNI__E958B35_0803094448.apk > D:\log.txt
# log.txt
package: name='uni.UNIE958B35' versionCode='100' versionName='1.0.0' platformBuildVersionName='1.0.0' compileSdkVersion='29' compileSdkVersionCodename='10'
sdkVersion:'19'
targetSdkVersion:'26'
# 上架应用市场
多数应用市场上架 app 需要著作权,其中不需要著作权的市场:
- 酷安市场:审核较慢。(只能用于广点通审核)。
- Google Play:开发者账号收费 25 美元。
- 豌豆荚:应用不涉及金融、贷款、医疗等特殊行业内容,可以暂时使用开发者声明代替。
- 安智:包含推广的上架服务,费用为 5000 元。
# 广告接入
# 应用内展示的广告组件
新建广告位后,会生成对应的广告位 ID,即 adpid,需等待广告位审核通过。不同平台广告位的审核速度不一样。 refs: https://ask.dcloud.net.cn/article/id-36769__page-5
<!-- App平台 示例 1 -->
<view class="ad-view">
<ad
adpid="1111111111"
@load="onload"
@close="onclose"
@error="onerror"
@downloadchange="ondownloadchange"
></ad>
</view>
// 1111111111 为测试adpid, 打包后不能使用

# 激励视频广告
- 加载
<script>
let rewardedVideoAd = null;
export default {
data() {
return {
title: 'createRewardedVideoAd'
}
},
onReady() {
if(uni.createRewardedVideoAd) {
rewardedVideoAd = uni.createRewardedVideoAd({ adpid: '1507000689' }) // 仅用于HBuilder基座调试 adpid: '1507000689'
rewardedVideoAd.onLoad(() => {
console.log('onLoad event')
})
rewardedVideoAd.onError((err) => {
console.log('onError event', err)
})
rewardedVideoAd.onClose((res) => {
console.log('onClose event', res)
})
}
},
methods: {
}
}
</script>
- 显示
rewardedVideoAd.show()
# 通用启动界面
https://ask.dcloud.net.cn/article/37474
# 屏幕适配
设计尺寸 375x812 (iphone X)
# 原生 tabbar 遮挡问题
使用原生 view 增加遮罩 弹窗无法遮挡 tabbar
