系统图:




mian.js入口文件:
引入vue;App/store/_loadsh/minApi/
page.json
pages: path:路径;style:导航文字;全局样式
uni.css:定义一些全局的样式;和变量

D:\company project\project\uni-app
1. 什么是 UniApp?它有什么特点?
UniApp 是一个基于 Vue.js 的跨平台应用开发框架,可以使用 Vue.js 的开发语法编写一次代码,然后通过编译生成可以在多个平台(包括iOS、Android、H5 等)上运行的应用。UniApp 具有以下特点:
- 跨平台:开发者可以使用相同的代码基底构建多个平台的应用,避免了针对不同平台的重复开发。
- 高性能:UniApp 在运行时使用原生渲染技术,具有接近原生应用的性能表现。
- 开放生态:UniApp 支持原生插件和原生能力的扩展,可以调用设备的硬件功能和第三方原生 SDK。
- 开发便捷:UniApp 提供了丰富的组件和开发工具,简化了应用开发和调试的流程。
2.请解释 UniApp 中的生命周期钩子函数及其执行顺序
在 UniApp 中,每个页面和组件都有一系列的生命周期钩子函数,用于在特定的时机执行代码。以下是 UniApp 中常用的生命周期钩子函数及其执行顺序:
- onLoad:页面/组件加载时触发。
- onShow::页面显示时调用。
- onReady:页面/组件初次渲染完成时触发。
- onHide:页面/组件被隐藏在后台时触发。
- onUnload:页面/组件被销毁时触发。
执行顺序为:onLoad -> onShow -> onReady -> onHide -> onUnload。
3. 请解释 UniApp 中的全局组件和页面组件的区别。
在 UniApp 中,全局组件和页面组件是两种不同类型的组件。
- 全局组件:在 App.vue 中注册的组件,可以在应用的所有页面和组件中使用。可以通过 Vue.component 方法进行全局注册。
- 页面组件:每个页面都有自己的组件,用于描述页面的结构和交互。页面组件只在当前页面有效,不能在其他页面中直接使用,但可以通过组件引用的方式进行复用。
import Vue from 'vue'
import App from './App'
App.mpType = 'app'
// 全局注册
import pageHead from 'components/pageHead.vue'
Vue.component('pageHead', pageHead)
\components\pageHead.vue
<template>
<view>
<view class="">
{{title}}
</view>
<view class="">
{{detail}}
</view>
</view>
</template>
<script>
export default {
name: "pageHead",
props: {
title: '',
detail: '',
}
}
</script>
// index.vue中使用
<template>
<div>
<pageHead :title="title" :detail="detail"></pageHead>
</div>
</template>
<script>
export default {
onLoad() {
},
data() {
return {
title: "hello",
detail:"你好"
}
},
}
</script>
4.请解释 UniApp 中的条件编译是如何工作的。
UniApp 中的条件编译允许开发者根据不同的平台或条件编译指令来编写不同的代码。在编译过程中,指定的平台或条件将会被处理,并最终生成对应平台的可执行代码。条件编译通过在代码中使用 #ifdef、#ifndef、#endif 等指令进行控制。例如,可以使用 #ifdef H5 来编写只在 H5 平台生效的代码块。
1.理解设备条件编译
设备条件编译是一种通过预定义指令来区分不同平台的技术。在UniApp中,我们可以使用process.env.UNI_PLATFORM来判断当前运行的平台,并根据需要执行相应的代码。
常见的设备条件编译指令如下:
#ifdef:如果条件为真,则编译指定的代码块。
#ifndef:如果条件为假,则编译指定的代码块。
#endif:结束条件编译块。
2.为不同平台编写样式
有时候,我们可能需要为不同平台提供不同的样式。例如,在iOS上的按钮样式可能与Android上的不同。下面是一个针对不同平台编写样式的示例:
<template>
<view class="container">
<button class="btn">按钮</button>
</view>
</template>
<style>
#ifdef H5
.btn {
background-color: red;
color: white;
}
#endif
#ifdef MP-WEIXIN
.btn {
background-color: green;
color: white;
}
#endif
#ifdef APP-PLUS
.btn {
background-color: blue;
color: white;
}
#endif
</style>
在上面的示例中,我们使用条件编译指令来为不同平台提供不同的样式。根据平台的不同,按钮的背景色和字体颜色将会有所变化。
3.示例:编写适配不同平台的JS代码
除了样式外,我们还可以根据平台差异编写适配的JavaScript代码。例如,如果我们希望在特定平台上执行特定逻辑,可以使用条件编译来实现。
<template>
<view class="container">
<text>{{ platformText }}</text>
</view>
</template>
<script>
export default {
computed: {
platformText() {
#ifdef H5
return '运行在H5平台';
#endif
#ifdef MP-WEIXIN
return '运行在微信小程序平台';
#endif
#ifdef APP-PLUS
return '运行在App平台';
#endif
}
}
};
</script>
在这个示例中,我们使用了计算属性 platformText 来根据不同平台返回不同的文本。根据运行平台的不同,页面上显示的文本将有所变化。
4. 注意事项和其他条件
process.env.UNI_PLATFORM:UNI_PLATFORM 是一个全局变量,用于判断当前的运行平台。常见的取值有 H5(浏览器)、MP-WEIXIN(微信小程序)和 APP-PLUS(App)。
支持嵌套条件编译:可以在条件编译块中嵌套其他条件编译块来实现更复杂的逻辑。
条件编译不支持动态值:条件编译是在构建阶段进行处理的,因此不能使用动态的值来判断条件。
5. 总结
通过设备条件编译,我们可以方便地根据不同平台进行代码适配,并实现特定平台的样式和逻辑。在UniApp开发中,这种条件编译的能力非常有用,可以提高开发效率并优化用户体验。
5.请解释 UniApp 中的跨平台兼容性问题和解决方案。
- 使用条件编译:根据不同的平台,编写对应平台的代码,使用条件编译指令来控制代码块的执行。
- 使用平台 API:UniApp 提供了一些平台 API,可以通过条件编译指令来使用特定平台的功能和能力。
- 样式适配:不同平台的样式表现可能有差异,使用 uni-app-plus 插件中的 upx2px 方法来进行样式适配,使得在不同平台上显示一致。
- 原生扩展:使用原生插件和扩展来调用设备的原生功能和第三方 SDK,以解决特定平台的需求。
不同平台的API
// 微信小程序特有 API
// #ifdef MP-WEIXIN
// 微信登录
wx.login({
success(res) {
if (res.code) {
console.log('登录凭证:', res.code);
}
}
});
// 获取用户信息
wx.getUserProfile({
desc: '用于完善会员资料',
success(res) {
console.log('用户信息:', res.userInfo);
}
});
// #endif
// 支付宝
// #ifdef MP-ALIPAY
// 支付宝授权
my.getAuthCode({
scopes: 'auth_user',
success(res) {
console.log('授权码:', res.authCode);
}
});
// 支付宝支付
my.tradePay({
tradeNO: '订单号',
success(res) {
console.log('支付结果:', res);
}
});
// #endif
// H5
// #ifdef H5
// 使用浏览器 localStorage
localStorage.setItem('key', 'value');
const value = localStorage.getItem('key');
// 使用浏览器地理位置 API
navigator.geolocation.getCurrentPosition(position => {
console.log('位置信息:', position.coords);
});
// 使用浏览器全屏 API
document.documentElement.requestFullscreen();
// #endif
6.uniApp中如何进行页面跳转?
可以使用uni.navigateTo、uni.redirectTo和uni.reLaunch等方法进行页面跳转。
- uni.navigateTo可以实现页面的普通跳转,
- uni.redirectTo可以实现页面的重定向跳转,
- uni.reLaunch可以实现关闭所有页面,打开到应用内的某个页面。
可以使用uni.navigateTo方法的url参数中添加query参数来实现页面间的数据传递。
// 页面A跳转到页面B,并传递参数
uni.navigateTo({
url: '/pages/detail/detail?id=123'
});
// 在页面B中获取传递的参数
export default {
onLoad(options) {
console.log(options.id); // 输出:123
}
};
7.uniApp中如何进行数据绑定?
可以使用双花括号{{}}进行数据绑定,将数据动态展示在页面上。
<template>
<view>
<text>{{ message }}</text>
</view>
</template>
<script>
export default {
data() {
return {
message: 'Hello uniApp'
};
}
};
</script>
8.uniApp中如何发送网络请求?
可以使用uni.request方法发送网络请求,通过设置url、method、data等参数来实现不同的请求。
uni.request({
url: 'https://api.example.com/data',
method: 'GET',
success: (res) => {
console.log(res.data);
},
fail: (err) => {
console.error(err);
}
});
9.uniApp中如何进行数据缓存?
可以使用uni.setStorageSync方法进行数据缓存,将数据存储到本地缓存中。
// 存储数据到本地缓存
uni.setStorageSync('key', 'value');
// 从本地缓存中读取数据
const data = uni.getStorageSync('key');
console.log(data); // 输出:value
10.uniApp中如何使用组件?
可以在页面中引入组件,并在components属性中注册组件,然后在页面中使用。
<template>
<view>
<my-component></my-component>
</view>
</template>
<script>
import myComponent from '@/components/myComponent.vue';
export default {
components: {
myComponent
}
};
</script>
11.uniApp中如何实现下拉刷新和上拉加载更多?
可以使用uni.onPullDownRefresh方法实现下拉刷新,使用uni.onReachBottom方法实现上拉加载更多。
// 在页面的onPullDownRefresh方法中实现下拉刷新
onPullDownRefresh() {
// 执行刷新操作
console.log('下拉刷新');
// 刷新完成后调用uni.stopPullDownRefresh()方法停止刷新
uni.stopPullDownRefresh();
}
// 在页面的onReachBottom方法中实现上拉加载更多
onReachBottom() {
// 执行加载更多操作
console.log('上拉加载更多');
}
12.uniApp中如何获取用户地理位置信息?
可以使用uni.getLocation方法获取用户的地理位置信息。
uni.getLocation({
success: (res) => {
console.log(res.latitude, res.longitude);
},
fail: (err) => {
console.error(err);
}
});
15.uniApp中如何进行图片的懒加载?
可以使用uni.lazyLoadImage组件实现图片的懒加载,将图片的src属性设置为需要加载的图片地址。
<template>
<view>
<uni-lazy-load-image src="http://example.com/image.jpg"></uni-lazy-load-image>
</view>
</template>
<script>
export default {
components: {
'uni-lazy-load-image': '@/components/uniLazyLoadImage.vue'
}
};
</script>
19.uniApp中如何实现图片预览功能?
可以使用uni.previewImage方法实现图片预览功能,通过设置urls参数来指定要预览的图片地址。
uni.previewImage({
urls: ['http://example.com/image1.jpg', 'http://example.com/image2.jpg']
});
22.uniApp中如何实现页面的登录授权?
可以使用uni.login方法获取用户登录凭证,然后将凭证发送到后端进行验证,根据验证结果来判断用户是否登录。
// 获取用户登录凭证
uni.login({
success: (res) => {
const code = res.code;
// 将凭证发送到后端进行验证
uni.request({
url: 'https://api.example.com/login',
method: 'POST',
data: {
code: code
},
success: (res) => {
console.log(res.data);
// 根据验证结果来判断用户是否登录
if (res.data.success) {
console.log('用户已登录');
} else {
console.log('用户未登录');
}
},
fail: (err) => {
console.error(err);
}
});
},
fail: (err) => {
console.error(err);
}
});
23.UNI-APP 区分环境打包配置
uniapp 区分环境打包配置_uni_platform-CSDN博客

如何打包
发行-->原生App-打包



24.UNI-APP本地离线打包应用配置
uni-app本地离线打包应用配置_uniapp targetsdkversion-CSDN博客
25.uniapp开发->创建->运行全流程(打包不同平台的代码,运行在不同端)
uniapp开发->创建->运行全流程(打包不同平台的代码,运行在不同端)_uniapp uni build 后如何运行-CSDN博客
26.uni-app进行条件编译导入两种方式?小程序端和H5的代表值是什么?
通过 #ifdef、#ifndef 的方式 H5 : H5 MP-WEIXIN : 微信小程序
27.uni-app上传文件时用到的api是什么,格式是什么
uni.uploadFile({
url:'要传的地址',
fileType: 'image',
filePath: '图片路径',
name: '文件对应的key',
success: function(res){}
})
28. uni-app获取地理位置的API是什么
uni.getLocation
29.uni-app如何监听页面滚动
使用onPageScroll监听
30.uni-app 小程序的性能优化
开启代码压缩:上传代码时勾选开发者工具中“压缩代码”选项”
31.uni-app 小程序的微信授权流程
- 什么是小程序的微信授权流程?说人话:用微信账号登录自家服务器
- 在小程序端wx.login()得到登录码code
- 小程序请求自家的登录接口,携带登录码code
- 自家服务器请求微信服务器,使用appid+appSecret+code换回session_key与openid
- 自家服务器将session_key与openid重新换算为自家的登录信息(如token)
- 小程序在后续请求自家服务器的过程中都携带该token,自家服务器就知道小程序端已经登录过了

32.un-app 微信支付流程
- 用户点击下单;
- 调用
wx.login获取临时登录凭证code,发送到后端换取openId; - 将
商品信息(id、数量等)+ 用户的openId一并通过购买接口发送服务端; - 服务器综合以上信息
生成订单+签名(根据微信支付SDK要求生成),向微信支付后台发送支付请求,获取其返回的预付款订单id(prepay_id),同时再次根据微信支付SDK要求生成预付款订单签名,二者一并响应给小程序端; - 小程序端调用
wx.requestPayment()发起微信支付,此时微信内部的支付窗口被唤醒,用户输入支付密码或指纹; - 微信支付后台处理支付,将结果同时推送给小程序端和我们自己的服务端;

uni-app有必要用vite吗
vite开发效率快,但是Webpack 是 uni-app 官方默认构建工具,社区资源更丰富,问题更容易解决。
某些小程序平台(如支付宝、快手)可能因 Vite 的 ES Module 输出存在兼容性问题,需实测验证。
原生渲染(如 NVUE)或非主流平台的适配可能不完善。
-
新项目:
如果是 H5 为主,推荐 Vite,搭配@dcloudio/uni-app的 Vite 版本。-
如果是复杂多端项目,优先 Webpack。
-
33.uni-app--pages.json
进行全局配置,包括页面文件路径,样式,原生导航栏等内容
管理页面路由
{
"pages": [
{
"path": "pages/component/index",
"style": {
"navigationBarTitleText": "组件"
}
},
{
"path": "pages/API/index",
"style": {
"navigationBarTitleText": "接口"
}
},
{
"path": "pages/component/view/index",
"style": {
"navigationBarTitleText": "view"
}
}
],
"condition": {
//模式配置,仅开发期间生效
"current": 0, //当前激活的模式(list 的索引项)
"list": [
{
"name": "test", //模式名称
"path": "pages/component/view/index" //启动页面,必选
}
]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "演示",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8",
"usingComponents": {
"collapse-tree-item": "/components/collapse-tree-item"
},
"renderingMode": "seperated", // 仅微信小程序,webrtc 无法正常时尝试强制关闭同层渲染
"pageOrientation": "portrait", //横屏配置,全局屏幕旋转设置(仅 APP/微信/QQ小程序),支持 auto / portrait / landscape
"rpxCalcMaxDeviceWidth": 960,
"rpxCalcBaseDeviceWidth": 375,
"rpxCalcIncludeWidth": 750
},
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#3cc51f",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"height": "50px",
"fontSize": "10px",
"iconWidth": "24px",
"spacing": "3px",
"iconfontSrc": "static/iconfont.ttf", // app tabbar 字体.ttf文件路径 app 3.4.4+
"list": [
{
"pagePath": "pages/component/index",
"iconPath": "static/image/icon_component.png",
"selectedIconPath": "static/image/icon_component_HL.png",
"text": "组件",
"iconfont": {
// 优先级高于 iconPath,该属性依赖 tabbar 根节点的 iconfontSrc
"text": "\ue102",
"selectedText": "\ue103",
"fontSize": "17px",
"color": "#000000",
"selectedColor": "#0000ff"
}
},
{
"pagePath": "pages/API/index",
"iconPath": "static/image/icon_API.png",
"selectedIconPath": "static/image/icon_API_HL.png",
"text": "接口"
}
],
"midButton": {
"width": "80px",
"height": "50px",
"text": "文字",
"iconPath": "static/image/midButton_iconPath.png",
"iconWidth": "24px",
"backgroundImage": "static/image/midButton_backgroundImage.png"
}
},
"easycom": {
"autoscan": true, //是否自动扫描组件
"custom": {
//自定义扫描规则
"^uni-(.*)": "@/components/uni-$1.vue"
}
},
"topWindow": {
"path": "responsive/top-window.vue",
"style": {
"height": "44px"
}
},
"leftWindow": {
"path": "responsive/left-window.vue",
"style": {
"width": "300px"
}
},
"rightWindow": {
"path": "responsive/right-window.vue",
"style": {
"width": "300px"
},
"matchMedia": {
"minWidth": 768
}
}
}
34. manifest.json
每个平台都会生成对应的manifest文件,其中包含了该平台特定的配置信息。根据自己的需求,可以修改这些文件来调整页面路由、图标样式、导航条设置等。
{
"appid": "__UNI__XXXXXX,创建应用时云端分配的,不要修改。",
"name": "应用名称,如uni-app",
"description": "应用描述",
"versionName": "1.0.0",
"versionCode": "100",
"uniStatistics": {
"enable": false
},
"app-plus": {
"allowsInlineMediaPlayback": true, //可选,Boolean类型, 是否允许 h5 中视频非全屏播放,3.8.5版本开始默认值为 true (仅iOS生效)
"mediaPlaybackRequiresUserAction": false, //可选,Boolean类型,可通过此属性配置 h5中的音视频是否可通过API自动播放,注意当设置为 false 时允许API控制自动播放,3.8.5版本开始默认值为 false(仅iOS生效 3.0.1 + 版本支持)
"nvueCompiler": "weex", //可选,字符串类型,nvue页面编译模式,可取值uni-app、weex,参考:https://ask.dcloud.net.cn/article/36074
"nvueStyleCompiler": "weex", //可选,字符串类型,nvue页面样式编译模式,可取值uni-app、weex,参考:https://ask.dcloud.net.cn/article/38751
"renderer": "native", //可选,字符串类型,可不加载基于 webview 的运行框架,可取值native
"compilerVersion": 2, //可选,数字类型,编译器版本,可取值2、3,参考:https://ask.dcloud.net.cn/article/36599
"nvueLaunchMode": "normal", //可选,字符串类型,nvue首页启动模式,compilerVersion值为3时生效,可取值normal、fast,参考:https://ask.dcloud.net.cn/article/36749
"nvue": {
//可选,JSON对象,nvue页面相关配置
"flex-direction": "row" //可选,字符串类型,nvue页面的flex-direction默认值,可取值row、row-reverse、column、column-reverse
},
"optimization": {
//可选,JSON对象,分包配置
"subPackages": true //可选,Boolean类型,是否开启分包优化,参考:https://uniapp.dcloud.io/collocation/pages.html#subpackages
},
"uniStatistics": {
//可选,JSON对象,uni统计配置
"enable": true //可选,Boolean类型,是否开启uni统计
},
"screenOrientation": [
//可选,字符串数组类型,应用支持的横竖屏
"portrait-primary", //可选,字符串类型,支持竖屏
"portrait-secondary", //可选,字符串类型,支持反向竖屏
"landscape-primary", //可选,字符串类型,支持横屏
"landscape-secondary" //可选,字符串类型,支持反向横屏
],
"splashscreen": {
//可选,JSON对象,splash界面配置
"alwaysShowBeforeRender": true, //可选,Boolean类型,是否等待首页渲染完毕后再关闭启动界面
"autoclose": true, //可选,Boolean类型,是否自动关闭启动界面
"waiting": true, //可选,Boolean类型,是否在程序启动界面显示等待雪花
"event": "loaded", //可选,字符串类型,可取值titleUpdate、rendering、loaded,uni-app项目已废弃
"target": "defalt", //可选,字符串类型,可取值default、second,uni-app项目已废弃
"dealy": 0, //可选,数字类型,延迟自动关闭启动时间,单位为毫秒,uni-app项目已废弃
"ads": {
//可选,JSON对象,开屏广告配置
"backaground": "#RRGGBB", //可选,字符串类型,格式为#RRGGBB,开屏广告背景颜色
"image": "" //可选,字符串类型,底部图片地址,相对应用资源目录路径
},
"androidTranslucent": false //可选,Boolean类型,使用“自定义启动图”启动界面时是否显示透明过渡界面,可解决点击桌面图标延时启动应用的效果
},
"modules": {
//可选,JSON对象,使用的模块
"Bluetooth": {
//可选,JSON对象,Bluetooth(低功耗蓝牙)
"description": "低功耗蓝牙"
},
"Contacts": {
//可选,JSON对象,Contact(通讯录)
"description": "通讯录"
},
"FaceID": {
//可选,JSON对象,FaceID(人脸识别),仅iOS支持
"description": "人脸识别"
},
"Fingerprint": {
//可选,JSON对象,Fingerprint(指纹识别)
"description": "指纹识别"
},
"Geolocation": {
//可选,JSON对象,Geolocation(定位)
"description": "定位"
},
"iBeacon": {
//可选,JSON对象,iBeacon
"description": "iBeacon"
},
"LivePusher": {
//可选,JSON对象,LivePusher(直播推流)
"description": "直播推流"
},
"Maps": {
//可选,JSON对象,Maps(地图)
"description": "地图"
},
"Messaging": {
//可选,JSON对象,Messaging(短彩邮件消息)
"description": "短彩邮件消息"
},
"OAuth": {
//可选,JSON对象,OAuth(登录鉴权)
"description": "登录鉴权"
},
"Payment": {
//可选,JSON对象,Payment(支付)
"description": "iBeacon"
},
"Push": {
//可选,JSON对象,Push(消息推送)
"description": "iBeacon"
},
"Share": {
//可选,JSON对象,Share(分享)
"description": "iBeacon"
},
"Speech": {
//可选,JSON对象,Speech(语音输入)
"description": "iBeacon"
},
"Statistic": {
//可选,JSON对象,Statistic(统计)
"description": "iBeacon"
},
"SQLite": {
//可选,JSON对象,SQLite(统计)
"description": "iBeacon"
},
"VideoPlayer": {
//可选,JSON对象,VideoPlayer(视频播放)
"description": "iBeacon"
},
"Webview-x5": {
//可选,JSON对象,Android X5 Webview(腾讯TBS),仅Android支持
"description": "iBeacon"
},
"UIWebview": {
//可选,JSON对象,UIWebview,仅iOS支持
"description": "iBeacon"
}
},
"webView": {
// 3.5.0 + 当系统webview低于指定版本时,会弹出提示。或者下载x5内核后继续启动,仅Android支持
"minUserAgentVersion": "95.0.4638.75", // 最小webview版本
"x5": {
// 此属性需要勾选 Android X5 Webview 模块,详细参见下面的说明
"timeOut": 3000, // 超时时间
"showTipsWithoutWifi": true, // 是否在非WiFi网络环境时,显示用户确认下载x5内核的弹窗。
"allowDownloadWithoutWiFi": false // 是否允许用户在非WiFi网络时进行x5内核的下载。(如果为true,就不会显示用户确认的弹窗。)
}
},
"checkPermissionDenied": false, // 是否校验已拒绝权限 如果拒绝则不会再申请 默认false 不校验已拒绝权限
"distribute": {
//必选,JSON对象,云端打包配置
"android": {
//可选,JSON对象,Android平台云端打包配置
"packagename": "", //必填,字符串类型,Android包名
"keystore": "", //必填,字符串类型,Android签名证书文件路径
"password": "", //必填,字符串类型,Android签名证书文件的密码
"aliasname": "", //必填,字符串类型,Android签名证书别名
"schemes": "", //可选,字符串类型,参考:https://uniapp.dcloud.io/tutorial/app-android-schemes
"abiFilters": [
//可选,字符串数组类型,参考:https://uniapp.dcloud.io/tutorial/app-android-abifilters
"armeabi-v7a",
"arm64-v8a",
"x86",
"x86_64"
],
"permissions": [
//可选,字符串数组类型,Android权限配置
"<uses-feature android:name=\"android.hardware.camera\"/>"
],
"custompermissions": false, //可选,Boolean类型,是否自定义Android权限配置
"permissionExternalStorage": {
//可选,JSON对象,Android平台应用启动时申请读写手机存储权限策略
"request": "always", //必填,字符串类型,申请读写手机存储权限策略,可取值none、once、always
"prompt": "" //可选,字符串类型,当request设置为always值用户拒绝时弹出提示框上的内容
},
"permissionPhoneState": {
//可选,JSON对象,Android平台应用启动时申请读取设备信息权限配置
"request": "always", //必填,字符串类型,申请读取设备信息权限策略,可取值none、once、always
"prompt": "" //可选,字符串类型,当request设置为always值用户拒绝时弹出提示框上的内容
},
"minSdkVersion": 21, //可选,数字类型,Android平台最低支持版本,参考:https://uniapp.dcloud.io/tutorial/app-android-minsdkversion
"targetSdkVersion": 30, //可选,数字类型,Android平台目标版本,参考:https://uniapp.dcloud.io/tutorial/app-android-targetsdkversion
"packagingOptions": [
//可选,字符串数组类型,Android平台云端打包时build.gradle的packagingOptions配置项
"doNotStrip '*/armeabi-v7a/*.so'",
"merge '**/LICENSE.txt'"
],
"jsEngine": "v8", //可选,字符串类型,uni-app使用的JS引擎,可取值v8、jsc
"debuggable": false, //可选,Boolean类型,是否开启Android调试开关
"locale": "default", //可选,应用的语言
"forceDarkAllowed": false, //可选,Boolean类型,是否强制允许暗黑模式
"resizeableActivity": false, //可选,Boolean类型,是否支持分屏调整窗口大小
"hasTaskAffinity": false, //可选,Boolean类型,是否设置android:taskAffinity
"buildFeatures": {
//(HBuilderX3.5.0+版本支持)可选,JSON对象,Android平台云端打包时build.gradle的buildFeatures配置项
"dataBinding": false, //可选,Boolean类型,是否设置dataBinding
"viewBinding": false //可选,Boolean类型,是否设置viewBinding
}
},
"ios": {
//可选,JSON对象,iOS平台云端打包配置
"appid": "", //必填,字符串类型,iOS平台Bundle ID
"mobileprovision": "", //必填,字符串类型,iOS打包使用的profile文件路径
"p12": "", //必填,字符串类型,iOS打包使用的证书文件路径
"password": "", //必填,字符串类型,iOS打包使用的证书密码
"devices": "iphone", //必填,字符串类型,iOS支持的设备类型,可取值iphone、ipad、universal
"urlschemewhitelist": "baidumap", //可选,字符串类型,应用访问白名单列表,参考:https://uniapp.dcloud.io/tutorial/app-ios-schemewhitelist
"urltypes": "", //可选,字符串类型,参考:https://uniapp.dcloud.io/tutorial/app-ios-schemes
"UIBackgroundModes": "audio", //可选,字符串类型,应用后台运行模式,参考:https://uniapp.dcloud.io/tutorial/app-ios-uibackgroundmodes
"frameworks": [
//可选,字符串数组类型,依赖的系统库,已废弃,推荐使用uni原生插件扩展使用系统依赖库
"CoreLocation.framework"
],
"deploymentTarget": "10.0", //可选,字符串类型,iOS支持的最低版本
"privacyDescription": {
//可选,JSON对象,iOS隐私信息访问的许可描述
"NSPhotoLibraryUsageDescription": "", //可选,字符串类型,系统相册读取权限描述
"NSPhotoLibraryAddUsageDescription": "", //可选,字符串类型,系统相册写入权限描述
"NSCameraUsageDescription": "", //可选,字符串类型,摄像头使用权限描述
"NSMicrophoneUsageDescription": "", //可选,字符串类型,麦克风使用权限描述
"NSLocationWhenInUseUsageDescription": "", //可选,字符串类型,运行期访问位置权限描述
"NSLocationAlwaysUsageDescription": "", //可选,字符串类型,后台运行访问位置权限描述
"NSLocationAlwaysAndWhenInUseUsageDescription": "", //可选,字符串类型,运行期后后台访问位置权限描述
"NSCalendarsUsageDescription": "", //可选,字符串类型,使用日历权限描述
"NSContactsUsageDescription": "", //可选,字符串类型,使用通讯录权限描述
"NSBluetoothPeripheralUsageDescription": "", //可选,字符串类型,使用蓝牙权限描述
"NSBluetoothAlwaysUsageDescription": "", //可选,字符串类型,后台使用蓝牙权限描述
"NSSpeechRecognitionUsageDescription": "", //可选,字符串类型,系统语音识别权限描述
"NSRemindersUsageDescription": "", //可选,字符串类型,系统提醒事项权限描述
"NSMotionUsageDescription": "", //可选,字符串类型,使用运动与健康权限描述
"NSHealthUpdateUsageDescription": "", //可选,字符串类型,使用健康更新权限描述
"NSHealthShareUsageDescription": "", //可选,字符串类型,使用健康分享权限描述
"NSAppleMusicUsageDescription": "", //可选,字符串类型,使用媒体资料库权限描述
"NFCReaderUsageDescription": "", //可选,字符串类型,使用NFC权限描述
"NSHealthClinicalHealthRecordsShareUsageDescription": "", //可选,字符串类型,访问临床记录权限描述
"NSHomeKitUsageDescription": "", //可选,字符串类型,访问HomeKit权限描述
"NSSiriUsageDescription": "", //可选,字符串类型,访问Siri权限描述
"NSFaceIDUsageDescription": "", //可选,字符串类型,使用FaceID权限描述
"NSLocalNetworkUsageDescription": "", //可选,字符串类型,访问本地网络权限描述
"NSUserTrackingUsageDescription": "" //可选,字符串类型,跟踪用户活动权限描述
},
"idfa": true, //可选,Boolean类型,是否使用广告标识
"capabilities": {
//可选,JSON对象,应用的能力配置(Capabilities)
},
"CFBundleName": "HBuilder", //可选,字符串类型,CFBundleName名称
"validArchitectures": [
//可选,字符串数组类型,编译时支持的CPU指令,可取值arm64、arm64e、armv7、armv7s、x86_64
"arm64"
],
"pushRegisterMode": "manual", //可选,使用“Push(消息推送)”模块时申请系统推送权限模式,manual表示调用push相关API时申请,其它值表示应用启动时自动申请
"privacyRegisterMode": "manual" //可选,仅iOS有效,设置为manual表示用户同意隐私政策后才获取idfv,设置为其它值表示应用启动时自动获取
},
"sdkConfigs": {
//可选,JSON对象,三方SDK相关配置
"geolocation": {
//可选,JSON对象,Geolocation(定位)模块三方SDK配置
"system": {
//可选,JSON对象,使用系统定位
"__platform__": ["ios", "android"] //可选,字符串数组类型,支持的平台
},
"amap": {
//可选,JSON对象,使用高德定位SDK配置
"__platform__": ["ios", "android"], //可选,字符串数组类型,支持的平台
"appkey_ios": "", //必填,字符串类型,iOS平台高德定位appkey
"appkey_android": "" //必填,字符串类型,Android平台高德定位appkey
},
"baidu": {
//可选,JSON对象,使用百度定位SDK配置
"__platform__": ["ios", "android"], //可选,字符串数组类型,支持的平台
"appkey_ios": "", //必填,字符串类型,iOS平台百度定位appkey
"appkey_android": "" //必填,字符串类型,Android平台百度定位appkey
}
},
"maps": {
//可选,JSON对象,Maps(地图)模块三方SDK配置
"amap": {
//可选,JSON对象,使用高德地图SDK配置
"appkey_ios": "", //必填,字符串类型,iOS平台高德地图appkey
"appkey_android": "" //必填,字符串类型,Android平台高德地图appkey
},
"baidu": {
//可选,JSON对象,使用百度地图SDK配置
"appkey_ios": "", //必填,字符串类型,iOS平台百度地图appkey
"appkey_android": "" //必填,字符串类型,Android平台百度地图appkey
},
"google": {
//可选,JSON对象,使用Google地图SDK配置
"APIKey_ios": "", //必填,字符串类型,iOS平台Google地图APIKey
"APIKey_android": "" //必填,字符串类型,Android平台Google地图APIKey
}
},
"oauth": {
//可选,JSON对象,OAuth(登录鉴权)模块三方SDK配置
"univerify": {
//可选,JSON对象,使用一键登录(univerify)SDK配置,无需手动配置参数,云端打包自动获取配置参数
},
"apple": {
//可选,JSON对象,使用苹果登录(Sign in with Apple)SDK配置,无配置参数,仅iOS平台支持
},
"weixin": {
//可选,JSON对象,使用微信登录SDK配置
"appid": "", //必填,字符串类型,微信开放平台申请的appid
"appsecret": "", //必填,字符串类型,微信开放平台申请的appsecret
"UniversalLinks": "" //可选,字符串类型,微信开放平台配置的iOS平台通用链接
},
"qq": {
//可选,JSON对象,使用QQ登录SDK配置
"appid": "", //必填,字符串类型,QQ开放平台申请的appid
"UniversalLinks": "" //可选,字符串类型,QQ开放平台配置的iOS平台通用链接
},
"sina": {
//可选,JSON对象,使用新浪微博登录SDK配置
"appkey": "", //必填,字符串类型,新浪微博开放平台申请的appid
"redirect_uri": "", //必填,字符串类型,新浪微博开放平台配置的redirect_uri
"UniversalLinks": "" //可选,字符串类型,新浪微博开放平台配置的iOS平台通用链接
},
"google": {
//可选,JSON对象,使用Google登录SDK配置
"clientid": "" //必填,字符串类型,Google开发者后台申请的clientid
},
"facebook": {
//可选,JSON对象,使用Facebook登录SDK配置
"appid": "" //必填,字符串类型,Facebook开发者后台申请的appid
}
},
"payment": {
//可选,JSON对象,Payment(支付)模块三方SDK配置
"appleiap": {
//可选,JSON对象,使用Apple应用内支付配置,无配置参数,仅iOS平台支持
},
"alipay": {
//可选,JSON对象,使用支付宝支付SDK配置
"__platform__": ["ios", "android"] //可选,字符串数组类型,支持的平台
},
"weixin": {
//可选,JSON对象,使用微信支付SDK配置
"__platform__": ["ios", "android"], //可选,字符串数组类型,支持的平台
"appid": "", //必填,字符串类型,微信开放平台申请的appid
"UniversalLinks": "" //可选,字符串类型,微信开放平台配置的iOS平台通用链接
},
"paypal": {
//可选,JSON对象,使用paypal支付SDK配置
"__platform__": ["ios", "android"], //可选,字符串数组类型,支持的平台
"returnURL_ios": "", //必填,字符串类型,paypa开发者者后台配置的iOS平台returnURL
"returnURL_android": "" //必填,字符串类型,paypa开发者者后台配置的Android平台returnURL
},
"stripe": {
//可选,JSON对象,使用stripe支付SDK配置
"__platform__": ["ios", "android"], //可选,字符串数组类型,支持的平台
"returnURL_ios": "" //必填,字符串类型,stripe开发者者后台配置的iOS平台returnURL
},
"google": {
//可选,JSON对象,使用google支付SDK配置,无配置参数,仅Android平台支持
}
},
"push": {
//可选,JSON对象,Push(消息推送)模块三方SDK配置
"unipush": {
//可选,JSON对象,使用UniPush SDK配置,无需手动配置参数,云端打包自动获取配置参数
"icons": {
//可选,JSON对象,推送图标配置
"push": {
//可选,JSON对象,Push图标配置
"ldpi": "", //可选,字符串类型,普通屏设备推送图标路径,分辨率要求48x48
"mdpi": "", //可选,字符串类型,大屏设备设备推送图标路径,分辨率要求48x48
"hdpi": "", //可选,字符串类型,高分屏设备推送图标路径,分辨率要求72x72
"xdpi": "", //可选,字符串类型,720P高分屏设备推送图标路径,分辨率要求96x96
"xxdpi": "", //可选,字符串类型,1080P高密度屏幕推送图标路径,分辨率要求144x144
"xxxdpi": "" //可选,字符串类型,4K屏设备推送图标路径,分辨率要求192x192
},
"smal": {
//可选,JSON对象,Push小图标配置
"ldpi": "", //可选,字符串类型,普通屏设备推送小图标路径,分辨率要求18x18
"mdpi": "", //可选,字符串类型,大屏设备设备推送小图标路径,分辨率要求24x24
"hdpi": "", //可选,字符串类型,高分屏设备推送小图标路径,分辨率要求36x36
"xdpi": "", //可选,字符串类型,720P高分屏设备推送小图标路径,分辨率要求48x48
"xxdpi": "", //可选,字符串类型,1080P高密度屏幕推送小图标路径,分辨率要求72x72
"xxxdpi": "" //可选,字符串类型,4K屏设备推送小图标路径,分辨率要求96x96
}
}
},
"igexin": {
//可选,JSON对象,使用个推推送SDK配置,**已废弃,推荐使用UniPush,UniPush是个推推送VIP版,功能更强大**
"appid": "", //必填,字符串类型,个推开放平台申请的appid
"appkey": "", //必填,字符串类型,个推开放平台申请的appkey
"appsecret": "", //必填,字符串类型,个推开放平台申请的appsecret
"icons": {
//可选,JSON对象,推送图标配置
"push": {
//可选,JSON对象,Push图标配置
"ldpi": "", //可选,字符串类型,普通屏设备推送图标路径,分辨率要求48x48
"mdpi": "", //可选,字符串类型,大屏设备设备推送图标路径,分辨率要求48x48
"hdpi": "", //可选,字符串类型,高分屏设备推送图标路径,分辨率要求72x72
"xdpi": "", //可选,字符串类型,720P高分屏设备推送图标路径,分辨率要求96x96
"xxdpi": "", //可选,字符串类型,1080P高密度屏幕推送图标路径,分辨率要求144x144
"xxxdpi": "" //可选,字符串类型,4K屏设备推送图标路径,分辨率要求192x192
},
"smal": {
//可选,JSON对象,Push小图标配置
"ldpi": "", //可选,字符串类型,普通屏设备推送小图标路径,分辨率要求18x18
"mdpi": "", //可选,字符串类型,大屏设备设备推送小图标路径,分辨率要求24x24
"hdpi": "", //可选,字符串类型,高分屏设备推送小图标路径,分辨率要求36x36
"xdpi": "", //可选,字符串类型,720P高分屏设备推送小图标路径,分辨率要求48x48
"xxdpi": "", //可选,字符串类型,1080P高密度屏幕推送小图标路径,分辨率要求72x72
"xxxdpi": "" //可选,字符串类型,4K屏设备推送小图标路径,分辨率要求96x96
}
}
}
},
"share": {
//可选,JSON对象,Share(分享)模块三方SDK配置
"weixin": {
//可选,JSON对象,使用微信分享SDK配置
"appid": "", //必填,字符串类型,微信开放平台申请的appid
"UniversalLinks": "" //可选,字符串类型,微信开放平台配置的iOS平台通用链接
},
"qq": {
//可选,JSON对象,使用QQ分享SDK配置
"appid": "", //必填,字符串类型,QQ开放平台申请的appid
"UniversalLinks": "" //可选,字符串类型,QQ开放平台配置的iOS平台通用链接
},
"sina": {
//可选,JSON对象,使用新浪微博分享SDK配置
"appkey": "", //必填,字符串类型,新浪微博开放平台申请的appid
"redirect_uri": "", //必填,字符串类型,新浪微博开放平台配置的redirect_uri
"UniversalLinks": "" //可选,字符串类型,新浪微博开放平台配置的iOS平台通用链接
}
},
"speech": {
//可选,JSON对象,Speech(语音识别)模块三方SDK配置
"baidu": {
//可选,JSON对象,使用百度语音识别SDK配置
"appid": "", //必填,字符串类型,百度开放平台申请的appid
"apikey": "", //必填,字符串类型,百度开放平台申请的apikey
"secretkey": "" //必填,字符串类型,百度开放平台申请的secretkey
}
},
"statics": {
//可选,JSON对象,Statistic(统计)模块三方SDK配置
"umeng": {
//可选,JSON对象,使用友盟统计SDK配置
"appkey_ios": "", //必填,字符串类型,友盟统计开放平台申请的iOS平台appkey
"channelid_ios": "", //可选,字符串类型,友盟统计iOS平台的渠道标识
"appkey_android": "", //必填,字符串类型,友盟统计开放平台申请的Android平台appkey
"channelid_android": "" //可选,字符串类型,友盟统计Android平台的渠道标识
},
"google": {
//可选,JSON对象,使用Google Analytics for Firebase配置
"config_ios": "", //必填,字符串类型,Google Firebase统计开发者后台获取的iOS平台配置文件路径
"config_android": "" //必填,字符串类型,Google Firebase统计开发者后台获取的Android平台配置文件路径
}
},
"ad": {
//可选,JSON对象,uni-AD配置
"360": {
//可选,JSON对象,使用360广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"csj": {
//可选,JSON对象,使用今日头条穿山甲广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"gdt": {
//可选,JSON对象,使用腾讯优量汇广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"ks": {
//可选,JSON对象,使用快手广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"ks-content": {
//可选,JSON对象,使用快手内容联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"sigmob": {
//可选,JSON对象,使用Sigmob广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"hw": {
//可选,JSON对象,使用华为广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"bd": {
//可选,JSON对象,使用百度百青藤广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"BXM-AD": {
//可选,JSON对象,使用互动游戏(变现猫)SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
}
}
},
"icons": {
//可选,JSON对象,应用图标相关配置
"ios": {
//可选,JSON对象,iOS平台图标配置
"appstore": "", //必填,字符串类型,分辨率1024x1024, 提交app sotre使用的图标路径
"iphone": {
//可选,JSON对象,iPhone设备图标配置
"app@2x": "", //可选,字符串类型,分辨率120x120,程序图标路径
"app@3x": "", //可选,字符串类型,分辨率180x180,程序图标路径
"spotlight@2x": "", //可选,字符串类型,分辨率80x80,Spotlight搜索图标路径
"spotlight@3x": "", //可选,字符串类型,分辨率120x120,Spotlight搜索图标路径
"settings@2x": "", //可选,字符串类型,分辨率58x58,Settings设置图标路径
"settings@3x": "", //可选,字符串类型,分辨率87x87,Settings设置图标路径
"notification@2x": "", //可选,字符串类型,分辨率40x40,通知栏图标路径
"notification@3x": "" //可选,字符串类型,分辨率60x60,通知栏图标路径
},
"ipad": {
//可选,JSON对象,iPad设备图标配置
"app": "", //可选,字符串类型,分辨率76x76,程序图标图标路径
"app@2x": "", //可选,字符串类型,分辨率152x152,程序图标图标路径
"proapp@2x": "", //可选,字符串类型,分辨率167x167,程序图标图标路径
"spotlight": "", //可选,字符串类型,分辨率40x40,Spotlight搜索图标路径
"spotlight@2x": "", //可选,字符串类型,分辨率80x80,Spotlight搜索图标路径
"settings": "", //可选,字符串类型,分辨率29x29,Settings设置图标路径
"settings@2x": "", //可选,字符串类型,分辨率58x58,Settings设置图标路径
"notification": "", //可选,字符串类型,分辨率20x20,通知栏图标路径
"notification@2x": "" //可选,字符串类型,分辨率740x40,通知栏图标路径
}
},
"android": {
//可选,JSON对象,Android平台图标配置
"ldpi": "", //可选,字符串类型,普通屏设备程序图标,分辨率要求48x48,已废弃
"mdpi": "", //可选,字符串类型,大屏设备程序图标,分辨率要求48x48,已废弃
"hdpi": "", //可选,字符串类型,高分屏设备程序图标,分辨率要求72x72
"xhdpi": "", //可选,字符串类型,720P高分屏设备程序图标,分辨率要求96x96
"xxhdpi": "", //可选,字符串类型,1080P高分屏设备程序图标,分辨率要求144x144
"xxxhdpi": "" //可选,字符串类型,2K屏设备程序图标,分辨率要求192x192
}
},
"splashscreen": {
//可选,JSON对象,启动界面配置
"iosStyle": "common", //可选,字符串类型,iOS平台启动界面样式,可取值common、default、storyboard
"ios": {
//可选,JSON对象,iOS平台启动界面配置
"storyboard": "", //可选,字符串类型,自定义storyboard启动界面文件路径,iosStyle值为storyboard时生效
"iphone": {
//可选,JSON对象,iPhone设备启动图配置,iosStyle值为default时生效
"default": "", //可选,字符串类型,分辨率320x480,iPhone3(G/GS)启动图片路径,已废弃
"retina35": "", //可选,字符串类型,分辨率640x960,3.5英寸设备(iPhone4/4S)启动图片路径,已废弃
"retina40": "", //可选,字符串类型,分辨率640x1136,4.0英寸设备(iPhone5/5S)启动图片路径
"retina40l": "", //可选,字符串类型,分辨率1136x640,4.0英寸设备(iPhone5/5S)横屏启动图片路径
"retina47": "", //可选,字符串类型,分辨率750x1334,4.7英寸设备(iPhone6/7/8)启动图片路径
"retina47l": "", //可选,字符串类型,分辨率1334x750,4.7英寸设备(iPhone6/7/8)横屏启动图片路径
"retina55": "", //可选,字符串类型,分辨率1242x2208,5.5英寸设备(iPhone6/7/8Plus)启动图片路径
"retina55l": "", //可选,字符串类型,分辨率2208x1242,5.5英寸设备(iPhone6/7/8Plus)横屏启动图片路径
"iphonex": "", //可选,字符串类型,分辨率1125x2436,5.8英寸设备(iPhoneX/XS)启动图片路径
"iphonexl": "", //可选,字符串类型,分辨率2436x1125,5.8英寸设备(iPhoneX/XS)横屏启动图片路径
"portrait-896h@2x": "", //可选,字符串类型,分辨率828x1792,6.1英寸设备(iPhoneXR)启动图片路径
"landscape-896h@2x": "", //可选,字符串类型,分辨率1792x828,6.1英寸设备(iPhoneXR)iPhoneXR横屏启动图片路径
"portrait-896h@3x": "", //可选,字符串类型,分辨率1242x2688,6.5英寸设备(iPhoneXS Max)启动图片路径
"landscape-896h@3x": "" //可选,字符串类型,分辨率2688x1242,6.5英寸设备(iPhoneXS Max)横屏启动图片路径
},
"ipad": {
//可选,JSON对象,iPad设备启动图配置,iosStyle值为default时生效
"portrait": "", //可选,字符串类型,分辨率768x1004,iPad竖屏启动图片路径,已废弃
"portrait-retina": "", //可选,字符串类型,分辨率1536x2008,iPad高分屏竖屏启动图片路径,已废弃
"landscape": "", //可选,字符串类型,分辨率1024x748,iPad横屏启动图片路径,已废弃
"landscape-retina": "", //可选,字符串类型,分辨率2048x1496,iPad高分屏横屏启动图片路径,已废弃
"portrait7": "", //可选,字符串类型,分辨率768x1024,9.7/7.9英寸iPad/mini竖屏启动图片路径
"landscape7": "", //可选,字符串类型,分辨率1024x768,9.7/7.9英寸iPad/mini横屏启动图片路径
"portrait-retina7": "", //可选,字符串类型,分辨率1536x2048,9.7/7.9英寸iPad/mini高分屏竖屏图片路径
"landscape-retina7": "", //可选,字符串类型,分辨率2048x1536,9.7/7.9英寸iPad/mini高分屏横屏启动图片路径
"portrait-1112h@2x": "", //可选,字符串类型,分辨率1668x2224,10.5英寸iPad Pro竖屏启动图片路径
"landscape-1112h@2x": "", //可选,字符串类型,分辨率2224x1668,10.5英寸iPad Pro横屏启动图片路径
"portrait-1194h@2x": "", //可选,字符串类型,分辨率1668x2388,11英寸iPad Pro竖屏启动图片路径
"landscape-1194h@2x": "", //可选,字符串类型,分辨率2388x1668,11英寸iPad Pro横屏启动图片路径
"portrait-1366h@2x": "", //可选,字符串类型,分辨率2048x2732,12.9英寸iPad Pro竖屏启动图片路径
"landscape-1366h@2x": "" //可选,字符串类型,分辨率2732x2048,12.9英寸iPad Pro横屏启动图片路径
}
},
"androidStyle": "common", //可选,字符串类型,Android平台启动界面样式,可取值common、default
"android": {
//可选,JSON对象,Android平台启动图片配置, androidStyle值为default时生效
"ldpi": "", //可选,字符串类型,分辨率320x442,低密度屏幕启动图片路径,已废弃
"mdpi": "", //可选,字符串类型,分辨率240x282,中密度屏幕启动图片路径,已废弃
"hdpi": "", //可选,字符串类型,分辨率480x762,高密度屏幕启动图片路径
"xhdpi": "", //可选,字符串类型,分辨率720x1242,720P高密度屏幕启动图片路径
"xxhdpi": "" //可选,字符串类型,分辨率1080x1882,1080P高密度屏幕启动图片路径
}
},
"orientation": [
//可选,字符串数组类型,应用支持的横竖屏,**已废弃,使用screenOrientation配置**
"portrait-primary",
"portrait-secondary",
"landscape-primary",
"landscape-secondary"
]
},
"compatible": {
//可选,JSON对象,uni-app兼容模式
"ignoreVersion": false, //可选,Boolean类型,是否忽略版本兼容检查提示
"runtimeVersion": "", //可选,字符串类型,兼容的uni-app运行环境版本号,多个版本使用,分割
"compilerVersion": "" //可选,字符串类型,兼容的编译器版本号
},
"confusion": {
//可选,JSON对象,原生混淆加密配置,参考:https://uniapp.dcloud.io/tutorial/app-sec-confusion
"description": "", //可选,字符串类型,原生混淆描述
"resources": {
//必填,JSON对象,原生混淆文件配置
"js/common.js": {
//可选,JSON对象,键名为需要原生混淆的文件路径
}
}
},
"channel": "", //可选,字符串类型,渠道标识
"cers": {
//可选,JSON对象,应用的异常崩溃与错误报告系统配置
"crash": true //可选,Boolean类型,是否提交应用异常崩溃信息
},
"cache": {
//可选,JSON对象,Webview窗口默认使用的缓存模式,uni-app项目已废弃
"mode": "default" //可选,字符串类型,可取值default、cacheElseNetwork、noCache、cacheOnly
},
"error": {
//可选,JSON对象,页面加载错误配置,uni-app项目仅对webview组件有效,参考:https://uniapp.dcloud.io/tutorial/app-webview-error
"url": "" //必填,字符串类型,webview页面错误是跳转的页面地址
},
"kernel": {
//可选,JSON对象,webview内核配置
"ios": "WKWebview", //可选,iOS平台使用的webview类型,可取值WKWebview、UIWebview
"recovery": "reload" //可选,iOS平台使用WKWebview时,内核崩溃后的处理逻辑,可取值restart、reload、none
},
"launchwebview": {
//可选,JSON对象,应用首页相关配置,uni-app项目不建议手动修改
"plusrequire": "normal", //可选,字符串类型,加载plus API时机,可取值ahead、normal、later、none
"injection": false, //可选,Boolean类型,是否提前注入plus API
"overrideresource": [
//可选,JSON对象数组,应用首页的拦截资源相关配置
{
"match": "", //可选,字符串类型,匹配拦截的资源url地址的正则表达式
"redirect": "", //可选,字符串类型,拦截资源的重定向地址
"mime": "", //可选,字符串类型,拦截资源的数据类型mime
"encoding": "", //可选,字符串类型,拦截资源的数据编码
"header": {
//可选,JSON对象,拦截资源的http头数据
}
}
],
"overrideurl": {
//可选,JSON对象,应用首页的拦截链接请求处理逻辑
"mode": "reject", //可选,字符串类型,拦截模式,可取值allow、reject
"match": "", //可选,字符串类型,匹配拦截规则,支持正则表达式
"exclude": "none" //可选,字符串类型,排除拦截理规则,可取值none、redirect
},
"replacewebapi": {
//可选,JSON对象,是否重写Web API实现相关配置
"geolocation": "none" //可选,字符串类型,重写标准定位API,可取值none、alldevice、auto
},
"subNViews": [
//可选,JSON对象数组,首页原生View相关配置,已废弃
{
"id": "", //可选,字符串类型,原生View标识
"styles": {
//可选,JSON对象,原生View样式
},
"tags": [
//可选,JSON对象数组,原生View中包含的tag标签列表
{}
]
}
],
"titleNView": {
//可选,JSON对象,标题栏相关配置
"backgroundColor": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,标题栏背景颜色
"titleText": "", //可选,字符串类型,标题栏标题文字内容
"titleColor": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,标题栏标题文字颜色
"titleSize": "17px", //可选,字符串类型,标题字体大小,默认大小为17px
"autoBackButton": true, //可选,Boolean类型,是否显示标题栏上返回键
"backButton": {
//可选,JSON对象,返回键样式
"backgournd": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,返回按钮背景颜色
"color": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,返回图标颜色
"colorPressed": "#RRGGBB" //可选,字符串类型,#RRGGBB,返回图标按下时的颜色
},
"buttons": [
//可选,JSON对象数组,标题栏按钮配置
{
"color": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,按钮上的文字颜色
"colorPressed": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,按钮按下状态的文字颜色
"float": "right", //可选,字符串类型,按钮显示位置,可取值left、right
"fontWeight": "normal", //可选,字符串类型,按钮上文字的粗细,可取值normal、bold
"fontSize": "22px", //可选,字符串类型,按钮上文字的大小
"fontSrc": "", //可选,字符串类型,按钮上文字使用的字体文件路径
"text": "" //可选,字符串类型,按钮上显示的文字
}
],
"splitLine": {
//可选,JSON对象,标题栏分割线样式
"color": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,分割线颜色
"height": "1px" //可选,字符串类型,分割线高度
}
},
"statusbar": {
//可选,JSON对象,状态栏配置
"background": "#RRGGBB" //可选,字符串类型,#RRGGBB格式,沉浸式状态栏样式下系统状态栏背景颜色
},
"top": "0px", //可选,字符串类型,Webview的顶部偏移量,支持px、%单位
"height": "100%", //可选,字符串类型,Webview窗口高度,支持px、%单位
"bottom": "0px", //可选,字符串类型,Webview的底部偏移量,仅在未同时设置top和height属性时生效
"backButtonAutoControl": "none", //可选,字符串类型,运行环境自动处理返回键的控制逻辑,可取值none、hide、close
"additionalHttpHeaders": {
//可选,JSON对象,额外添加HTTP请求头数据
}
},
"nativePlugins": {
//可选,JSON数组对象,uni原生插件配置,参考:https://nativesupport.dcloud.net.cn/NativePlugin/use/use_local_plugin
"%UniPlugin-ID%": {
//可选,JSON对象,键名为插件标识,值为插件配置参数
}
},
"popGesture": "none", //可选,字符串类型,窗口侧滑返回默认效果,可取值none、close、hide
"runmode": "liberate", //可选,字符串类型,应用资源运行模式,可取值normal、liberate
"safearea": {
//可选,JSON对象,安全区域配置
"background": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,安全区域背景颜色
"backgroundDark": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,暗黑模式安全区域背景颜色
"bottom": {
//可选,JSON对象,底部安全区域配置
"offset": "none" //可选,字符串类型,安全区域偏移值,可取值auto、none
},
"left": {
//可选,JSON对象,左侧安全区域配置
"offset": "none" //可选,字符串类型,安全区域偏移值,可取值auto、none
},
"right": {
//可选,JSON对象,左侧安全区域配置
"offset": "none" //可选,字符串类型,安全区域偏移值,可取值auto、none
}
},
"softinput": {
//可选,JSON对象,软键盘相关配置
"navBar": "auto", //可选,字符串类型,iOS平台软键盘上导航条的显示模式,可取值auto、none
"auxiliary": false, //可选,Boolean类型,是否开启辅助输入功能
"mode": "adjustResize" //可选,字符串类型,弹出系统软键盘模式,可取值adjustResize、adjustPan
},
"ssl": {
//可选,JSON对象,ssl相关设置
"untrustedca": "accept" //可选,字符串类型,https请求时服务器非受信证书的处理逻辑,可取值accept、refuse、warning
},
"statusbar": {
//可选,JSON对象,应用启动后的系统状态栏相关配置
"immersed": "none", //可选,字符串类型,沉浸式状态栏样式,可取值none、suggestedDevice、supportedDevice
"style": "light", //可选,字符串类型,系统状态栏样式(前景颜色),可取值dark、light
"background": "#RRGGBB" //可选,字符串类型,#RRGGBB格式,系统状态栏背景颜色
},
"useragent": {
//可选,JSON对象,应用UserAgent相关配置,默认值为系统UserAgent,并添加 uni-app Html5Plus/1.0
"value": "", //可选,字符串类型,设置的默认userAgent值
"concatenate": false //可选,Boolean类型,是否将value值作为追加值连接到系统默认userAgent值之后
},
"useragent_android": {
//可选,JSON对象,Android平台应用UserAgent相关配置,优先级高于useragent配置
"value": "", //可选,字符串类型,设置的默认userAgent值
"concatenate": false //可选,Boolean类型,是否将value值作为追加值连接到系统默认userAgent值之后
},
"useragent_ios": {
//可选,JSON对象,iOS平台应用UserAgent相关配置,优先级高于useragent配置
"value": "", //可选,字符串类型,设置的默认userAgent值
"concatenate": false //可选,Boolean类型,是否将value值作为追加值连接到系统默认userAgent值之后
}
},
"quickapp": {},
"mp-weixin": {
"appid": "wx开头的微信小程序appid",
"uniStatistics": {
"enable": false
}
},
"mp-baidu": {
"appid": "百度小程序appid"
},
"mp-toutiao": {
"appid": "抖音小程序appid"
},
"mp-lark": {
"appid": "飞书小程序appid"
},
"h5": {
"title": "演示",
"template": "index.html",
"router": {
"mode": "history",
"base": "/hello/"
},
"async": {
"loading": "AsyncLoading",
"error": "AsyncError",
"delay": 200,
"timeout": 3000
}
}
}
35.uni-app(跨端注意)
CSS异常:
除了H5不支持*选择器
body的元素选择器请改为page,同样,div和ul和li等改为view、span和font改为text、a改为navigator、img改为image...
组件和页面样式相互影响
非H5其他的没有默认scoped,组件样式隔离可以在style中加scoped
36.uni-app多端打包怎么配置
在UniApp中进行多端打包的配置主要有以下几个步骤:
安装依赖:首先需要确保已经全局安装了uni-app命令行工具。可通过运行npm install -g @vue/cli@4.5.0来安装最新版本的Vue CLI。然后使用npm init uni-app myproject创建项目并选择所需平台(如H5、小程序等)。
修改manifest文件:每个平台都会生成对应的manifest文件,其中包含了该平台特定的配置信息。根据自己的需求,可以修改这些文件来调整页面路由、图标样式、导航条设置等。
编写源码:开发者可以按照Vue语法编写源码,无需关心不同平台之间的差异性。UniApp提供了一系列API和组件库,支持跨平台开发。
构建与打包:完成源码编写后,可以使用命令行工具进行构建和打包操作。比如,运行npm run dev:%PLATFORM%来进行指定平台的开发模式构建;或者运行npm run build:%PLATFORM%来进行指定平台的正式模式构建。
输出结果:构建完成后,将会得到相应平台的打包文件。可以直接部署到服务器上,也可以将打包好的文件分发给其他人员使用。
注意事项:
UniApp默认支持多种平台,因此可能需要为不同平台单独配置一些参数,如微信小程序需要配置appid等。
若想更加深入地控制每个平台的配置,还可以查看官方文档中关于多端配置的说明。
xxc

4万+

被折叠的 条评论
为什么被折叠?



