提交 9495b932 编写于 作者: hbcui1984's avatar hbcui1984

删除微信 及 plus 相关内容

上级 fc08a2d7
......@@ -20,7 +20,6 @@
* [样式](nvue-css.md)
* [API](nvue-api.md)
* [事件](nvue-event.md)
* [使用 HTML5+ 注意事项](use-html5plus.md)
* [条件编译 解决各端差异](platform.md)
* [uni-app 跨端开发注意](matter.md)
* [高效开发技巧](snippet.md)
......
......@@ -60,7 +60,7 @@ App平台的直播播放,不使用此API,而直接使用video的API。
- app-vue 平台,需要编写条件编译代码,使用 `plus.video.LivePusher`[业务指南](https://ask.dcloud.net.cn/article/13416)[规范文档](http://www.html5plus.org/doc/zh_cn/video.html#plus.video.LivePusher)
使用nvue做直播,比使用vue的优势有:
1. nvue可一套代码直接编译到App和微信
1. nvue可一套代码直接编译到App
2. nvue的cover-view比vue的cover-view更强大,在视频上绘制元素更容易。如果只考虑App端的话,不用cover-view,任意组件都可以覆盖live-pusher组件
3. 若需要视频内嵌在swiper里上下滑动(类抖音、映客首页模式),App端只有nvue才能实现
当然nvue相比vue的坏处是css写法受限。
......
......@@ -60,5 +60,4 @@ uni.scanCode({
- App-vue如果想自定义扫码,可参考[uni-app中如何使用5+的原生界面控件](http://ask.dcloud.net.cn/article/35036)[plus.barcode API](https://www.html5plus.org/doc/zh_cn/barcode.html)
- App-nvue,支持barcode组件,可自定义扫码界面。[详见](https://uniapp.dcloud.io/component/barcode)。App端自定义扫码界面,建议使用nvue方式。
- App的扫码引擎,使用业内开源的通用扫码库,扫码效率比不过微信、支付宝等商业扫码库。如需更强的扫码效果,请使用支付宝提供的扫码插件:[https://ext.dcloud.net.cn/plugin?id=2636](https://ext.dcloud.net.cn/plugin?id=2636)
- 在扫码界面点击返回也会进入 `fail` 回调中
......@@ -87,7 +87,6 @@ uni.openBluetoothAdapter({
**示例代码**
```javascript
// 以微信硬件平台的蓝牙智能灯为例,主服务的 UUID 是 FEE7。传入这个参数,只搜索主服务 UUID 为 FEE7 的设备
uni.startBluetoothDevicesDiscovery({
services: ['FEE7'],
success(res) {
......
......@@ -139,7 +139,7 @@ uni.showModal({
```
**注意**
- 弹框同时使用确定取消时,需注意不同平台的确认取消按钮位置不同。在微信、H5中,确认按钮默认在右边。在App中,iOS的确认按钮默认在右边,而Android默认在左边。产生这种差异的原因是uni.showModa在App上调用的是原生提供的弹出框,原生平台的策略本身就不同。如果需要调整,可以通过自行控制按钮的文字,即“确定”按钮的文字其实可以设置为“取消”。
- 弹框同时使用确定取消时,需注意不同平台的确认取消按钮位置不同。在H5中,确认按钮默认在右边。在App中,iOS的确认按钮默认在右边,而Android默认在左边。产生这种差异的原因是uni.showModa在App上调用的是原生提供的弹出框,原生平台的策略本身就不同。如果需要调整,可以通过自行控制按钮的文字,即“确定”按钮的文字其实可以设置为“取消”。
- showModal不满足需求时,可以自行开发组件弹框。插件市场有很多自定义弹框的组件,需注意在非H5平台,前端组件无法覆盖原生组件(如地图、video),遮罩也无法盖住tabbar和navigationbar。如需覆盖原生组件或遮罩tabbar等,App端推荐使用[subNvue](https://uniapp.dcloud.net.cn/api/window/subNVues)
- App端还有原生的[prompt API](https://www.html5plus.org/doc/zh_cn/nativeui.html#plus.nativeUI.prompt),弹出界面中内置一个输入框。其他平台需自行封装前端组件实现。
......
......@@ -801,7 +801,6 @@ h5 平台下拉刷新动画,只有 circle 类型。
- `titleImage`仅支持https地址,设置了`titleImage`会替换页面文字标题
- `backgroundImageUrl`支持网络地址和本地地址,尽量使用绝对地址
- 部分配置可能会只在真机运行的时候生效,支付宝未来应该会改善
## FAQ
- Q:如何取消原生导航栏?或自定义导航
......@@ -982,12 +981,6 @@ midButton没有pagePath,需监听点击事件,自行处理点击后的行为
|path|String|是|启动页面路径|
|query|String|否|启动参数,可在页面的 [onLoad](/collocation/frame/lifecycle?id=页面生命周期) 函数里获得|
**注意:** 在 App 里真机运行可直接打开配置的页面,微信开发者工具里需要手动改变编译模式,如下图:
<div style="text-align:center;">
<img src="https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/a4ceac70-4f2e-11eb-b680-7980c8a877b8.png" />
</div>
**代码示例:**
```javascript
......@@ -1008,9 +1001,11 @@ midButton没有pagePath,需监听点击事件,自行处理点击后的行为
# subPackages
所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据pages.json的配置进行划分。
`uni-app`在App端支持分包加载,用于首页是vue时的App启动提速。
分包加载将App资源分为主包和分包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据pages.json的配置进行划分。
App默认为整包。其目的不用于下载提速,而用于首页是vue时的启动提速。App下开启分包,除在pages.json中配置分包规则外,还需要在manifest中设置在app端开启分包设置,详见:[https://uniapp.dcloud.io/collocation/manifest?id=app-vue-optimization](https://uniapp.dcloud.io/collocation/manifest?id=app-vue-optimization)
App平台默认为整包。若需开启分包,除在pages.json中配置分包规则外,还需要在manifest中设置在app端开启分包设置,详见:[https://uniapp.dcloud.io/collocation/manifest?id=app-vue-optimization](https://uniapp.dcloud.io/collocation/manifest?id=app-vue-optimization)
subPackages 节点接收一个数组,数组每一项都是应用的子包,其属性值如下:
......
......@@ -6,25 +6,23 @@
|App|H5|
|:-:|:-:|
|√ 2.6.3+|2.6.3+|
从HBuilderX 2.9.3起,编译到所有平台均支持`navigation-bar`,但编译到微信时,受微信基础库版本限制;编译到其他平台不受平台版本限制。
|√ |√ |
**属性说明**
|属性|类型|默认值|必填|说明|最低版本
|:-|:-|:-|:-|:-|:-|
|title|string||否|导航条标题|微信基础库 2.9.0|
|title-icon|string||否|标题图标,图标路径如"./img/t.png",仅支持本地文件路径, 相对路径,相对于当前页面的host位置,固定宽高为逻辑像素值"34px"。 要求图片的宽高相同。 注意:设置标题图标后标题将居左显示。|App 2.6.7+|
|title-icon-radius|string|无圆角|否|标题图标圆角,取值格式为"XXpx",其中XX为像素值(逻辑像素),如"10px"表示10像素半径圆角。|App 2.6.7+|
|subtitle-text|string||否|副标题文字内容,设置副标后将显示两行标题,副标显示在主标题(titleText)下方。 注意:设置副标题后将居左显示|App 2.6.7+|
|subtitle-size|string|"auto"|否|副标题文字字体大小,字体大小单位为像素,如"14px"表示字体大小为14像素,默认值为12像素。|App 2.6.7+|
|subtitle-color|string||否|副标题文字颜色,颜色值格式为"#RRGGBB"和"rgba(R,G,B,A)",如"#FF0000"表示标题文字颜色为红色。 默认值与主标题文字颜色一致|App 2.6.7+|
|subtitle-overflow|string|"ellipsis"|否|标题文字超出显示区域时处理方式,可取值: "clip" - 超出显示区域时内容裁剪; "ellipsis" - 超出显示区域时尾部显示省略标记(...)。|App 2.6.7+|
|title-align|string|"auto"|否|可取值: "center"-居中对齐; "left"-居左对齐; "auto"-根据平台自动选择(Android平台居左对齐,iOS平台居中对齐)|App 2.6.7+|
|background-image|string||否|支持以下类型: 背景图片路径 - 如"./img/t.png",仅支持本地文件路径, 相对路径,相对于当前页面的host位置,根据实际标题栏宽高拉伸绘制; 渐变色 - 仅支持线性渐变,两种颜色的渐变,如“linear-gradient(to top, #a80077, #66ff00)”, 其中第一个参数为渐变方向,可取值: "to right"表示从左向右渐变, “to left"表示从右向左渐变, “to bottom"表示从上到下渐变, “to top"表示从下到上渐变, “to bottom right"表示从左上角到右下角, “to top left"表示从右下角到左上角|App 2.6.7+|
|background-repeat|string||否|仅在backgroundImage设置为图片路径时有效。 可取值: "repeat" - 背景图片在垂直方向和水平方向平铺; "repeat-x" - 背景图片在水平方向平铺,垂直方向拉伸; “repeat-y” - 背景图片在垂直方向平铺,水平方向拉伸; “no-repeat” - 背景图片在垂直方向和水平方向都拉伸。 默认使用 “no-repeat"|App 2.6.7+|
|blur-effect|string|"none"|否|此效果将会高斯模糊显示标题栏后的内容,仅在type为"transparent"或"float"时有效。 可取值: "dark" - 暗风格模糊,对应iOS原生UIBlurEffectStyleDark效果; "extralight" - 高亮风格模糊,对应iOS原生UIBlurEffectStyleExtraLight效果; "light" - 亮风格模糊,对应iOS原生UIBlurEffectStyleLight效果; "none" - 无模糊效果。 注意:使用模糊效果时应避免设置背景颜色,设置背景颜色可能覆盖模糊效果。|App 2.6.7+|
|属性|类型|默认值|必填|说明|
|:-|:-|:-|:-|:-|
|title|string||否|导航条标题|
|title-icon|string||否|标题图标,图标路径如"./img/t.png",仅支持本地文件路径, 相对路径,相对于当前页面的host位置,固定宽高为逻辑像素值"34px"。 要求图片的宽高相同。 注意:设置标题图标后标题将居左显示。
|title-icon-radius|string|无圆角|否|标题图标圆角,取值格式为"XXpx",其中XX为像素值(逻辑像素),如"10px"表示10像素半径圆角。
|subtitle-text|string||否|副标题文字内容,设置副标后将显示两行标题,副标显示在主标题(titleText)下方。 注意:设置副标题后将居左显示
|subtitle-size|string|"auto"|否|副标题文字字体大小,字体大小单位为像素,如"14px"表示字体大小为14像素,默认值为12像素。
|subtitle-color|string||否|副标题文字颜色,颜色值格式为"#RRGGBB"和"rgba(R,G,B,A)",如"#FF0000"表示标题文字颜色为红色。 默认值与主标题文字颜色一致
|subtitle-overflow|string|"ellipsis"|否|标题文字超出显示区域时处理方式,可取值: "clip" - 超出显示区域时内容裁剪; "ellipsis" - 超出显示区域时尾部显示省略标记(...)。|App
|title-align|string|"auto"|否|可取值: "center"-居中对齐; "left"-居左对齐; "auto"-根据平台自动选择(Android平台居左对齐,iOS平台居中对齐)
|background-image|string||否|支持以下类型: 背景图片路径 - 如"./img/t.png",仅支持本地文件路径, 相对路径,相对于当前页面的host位置,根据实际标题栏宽高拉伸绘制; 渐变色 - 仅支持线性渐变,两种颜色的渐变,如“linear-gradient(to top, #a80077, #66ff00)”, 其中第一个参数为渐变方向,可取值: "to right"表示从左向右渐变, “to left"表示从右向左渐变, “to bottom"表示从上到下渐变, “to top"表示从下到上渐变, “to bottom right"表示从左上角到右下角, “to top left"表示从右下角到左上角
|background-repeat|string||否|仅在backgroundImage设置为图片路径时有效。 可取值: "repeat" - 背景图片在垂直方向和水平方向平铺; "repeat-x" - 背景图片在水平方向平铺,垂直方向拉伸; “repeat-y” - 背景图片在垂直方向平铺,水平方向拉伸; “no-repeat” - 背景图片在垂直方向和水平方向都拉伸。 默认使用 “no-repeat"
|blur-effect|string|"none"|否|此效果将会高斯模糊显示标题栏后的内容,仅在type为"transparent"或"float"时有效。 可取值: "dark" - 暗风格模糊,对应iOS原生UIBlurEffectStyleDark效果; "extralight" - 高亮风格模糊,对应iOS原生UIBlurEffectStyleExtraLight效果; "light" - 亮风格模糊,对应iOS原生UIBlurEffectStyleLight效果; "none" - 无模糊效果。 注意:使用模糊效果时应避免设置背景颜色,设置背景颜色可能覆盖模糊效果。
属性说明 [/collocation/pages?id=app-titlenview](/collocation/pages?id=app-titlenview)
......
**uni-app 中可使用的 UI 框架:**[https://ask.dcloud.net.cn/article/35489](https://ask.dcloud.net.cn/article/35489)
**uni-app 导航栏开发指南:** [https://ask.dcloud.net.cn/article/34921](https://ask.dcloud.net.cn/article/34921)
**uni-app 实现全局变量:** [https://ask.dcloud.net.cn/article/35021](https://ask.dcloud.net.cn/article/35021)
**uni-app 引用 npm 第三方库:** [https://ask.dcloud.net.cn/article/19727](https://ask.dcloud.net.cn/article/19727)
**原生控件层级过高无法覆盖的解决方案:**[https://uniapp.dcloud.io/component/native-component](https://uniapp.dcloud.io/component/native-component)
**国际化/多语言/i18n方案:**[https://ask.dcloud.net.cn/article/35872](https://ask.dcloud.net.cn/article/35872)
**本地存储详解:**[https://ask.dcloud.net.cn/article/166](https://ask.dcloud.net.cn/article/166)
## App常见问题
**uni-app 各环节(HBuilderX、cli、自定义基座、本地sdk、云打包引擎)版本兼容性说明:**[https://ask.dcloud.net.cn/article/35845](https://ask.dcloud.net.cn/article/35845)
**uni-app App整包升级检测:** [https://ask.dcloud.net.cn/article/34972](https://ask.dcloud.net.cn/article/34972)
**uni-app App资源热更新:** [https://ask.dcloud.net.cn/article/35667](https://ask.dcloud.net.cn/article/35667)
**App全面屏、安全区、刘海屏适配:**[https://ask.dcloud.net.cn/article/35564](https://ask.dcloud.net.cn/article/35564)
**App权限状态判断及引导:**[https://ext.dcloud.net.cn/plugin?id=594](https://ext.dcloud.net.cn/plugin?id=594)
**Android平台上架要求的隐私政策提示配置方法:**[https://ask.dcloud.net.cn/article/36937](https://ask.dcloud.net.cn/article/36937)
**Android平台应用启动时读写手机存储、访问设备信息(如IMEI)等权限策略及提示信息:**[https://ask.dcloud.net.cn/article/36549](https://ask.dcloud.net.cn/article/36549)
**App打包前端代码进行加密:**[https://ask.dcloud.net.cn/article/36437](https://ask.dcloud.net.cn/article/36437)
**Android App字体跟随Rom默认字体/系统字体**[详见](https://uniapp.dcloud.net.cn/component/native-component?id=android%e7%b3%bb%e7%bb%9f%e4%b8%bb%e9%a2%98%e5%ad%97%e4%bd%93%e5%af%b9%e5%8e%9f%e7%94%9f%e7%bb%84%e4%bb%b6%e6%b8%b2%e6%9f%93%e7%9a%84%e5%bd%b1%e5%93%8d)
**uni-app 中使用 5+ 的原生界面控件(包括map、video、livepusher、barcode、nview):**[https://ask.dcloud.net.cn/article/35036](https://ask.dcloud.net.cn/article/35036)
**App初期启动的引导轮播:** 因为是App专用,为了更好的性能,推荐使用nvue制作。参考插件市场已经封装的插件[https://ext.dcloud.net.cn/plugin?id=676](https://ext.dcloud.net.cn/plugin?id=676)
**双向https认证:** TLS 双向认证 [详情](https://ask.dcloud.net.cn/article/38981)
**iOS平台适配暗黑模式(DarkMode):**[https://ask.dcloud.net.cn/article/36995](https://ask.dcloud.net.cn/article/36995)
**原生App和uni-app混合开发:** [详见](hybrid)
## H5常见问题
**uni-app 的 H5 版使用注意事项:**[https://ask.dcloud.net.cn/article/35232](https://ask.dcloud.net.cn/article/35232)
**开发微信公众号(H5)JSSDK 的使用方式:**[https://ask.dcloud.net.cn/article/35380](https://ask.dcloud.net.cn/article/35380)
......@@ -257,7 +257,7 @@ nvue中,uni-app 模式([nvue 不同编译模式介绍](https://ask.dcloud.ne
而且主要是宽度变形。高度一般因为有滚动条,不容易出问题。由此,引发了较强的动态宽度单位需求。
微信小程序设计了 rpx 解决这个问题。`uni-app` 在 App 端、H5 端都支持了 `rpx`,并且可以配置不同屏幕宽度的计算方式,具体参考:[rpx计算配置](https://uniapp.dcloud.io/collocation/pages?id=globalstyle)
`uni-app` 在 App 端、H5 端都支持了 `rpx`,并且可以配置不同屏幕宽度的计算方式,具体参考:[rpx计算配置](https://uniapp.dcloud.io/collocation/pages?id=globalstyle)
rpx 是相对于基准宽度的单位,可以根据屏幕宽度进行自适应。`uni-app` 规定屏幕基准宽度 750rpx。
......@@ -627,7 +627,6 @@ ES6 API 的支持,详见如下表格部分(`x` 表示不支持,无特殊
**注意**
- App端Android支持不依赖Android版本号,即便是Android4.4也是上表数据。因为uni-app的js代码运行在自带的独立jscore中,没有js的浏览器兼容性问题。uni-app的vue页面在Android低端机上只有css浏览器兼容性问题,因为vue页面仍然渲染在webview中,受Android版本影响,太新的css语法在低版本不支持。
- 默认不需要在微信工具里继续开启es6转换。但如果用了微信的wxml自定义组件(wxcomponents目录下),uni-app编译器并不会处理这些文件中的es6代码,需要去微信工具里开启转换。从HBuilderX调起微信工具时,如果发现工程下有wxcomponents目录会自动配置微信工程打开es6转换。
## NPM支持
......
......@@ -95,7 +95,6 @@ App的js运行在jscore下而不是浏览器里,没有浏览器专用的js对
- 没有这些浏览器自带对象并不影响业务开发,uni提供的api足够完成业务。
- uni的api在编译到web平台运行时,其实也会转为浏览器的js api。
- App端若要使用操作window、document的库,需要通过renderjs来实现。
- uni的api是多端可用的。在条件编译区,每个平台的专有api也可以使用,比如wx.、plus.等api可以分别在微信下和app下使用。
2. Tag注意
- uni-app的tag,和HTML的tag不一样,比如div要改成view,span要改成text、a要改成navigator。
- 出于降低h5应用向uni-app迁移成本的考虑,写成div、span也可以运行在app上,但仍然建议养成新习惯。
......
......@@ -48,8 +48,6 @@ iOS还好,但Android低端机上,每次通信都要耗时几十毫秒。平
app端提供了[renderjs](https://uniapp.dcloud.io/frame?id=renderjs),并兼容到H5平台。
比如canvas动画,微信的canvas无法通过wxs操作,js不停绘制canvas动画因通信折损而无法流畅。uni-app的app-vue里的canvas对象设计在webview视图层的,通过renderjs可以在视图层直接操作canvas动画,将不再有通信折损,实现更流畅的效果,详见:[renderjs](https://uniapp.dcloud.io/frame?id=renderjs)
- 原生渲染的视图层
在app-nvue里,逻辑层和视图层的折损一样存在。包括react native也有这个问题。所以也千万别以为原生渲染就多么高级。
......@@ -60,10 +58,6 @@ bindingx作为一种表达式,它的功能不及js强大,但手势监听、
#### 优化建议
##### App如果不是v3模式,请改为v3编译模式
详见:[https://ask.dcloud.net.cn/article/36599](https://ask.dcloud.net.cn/article/36599)
##### 避免使用大图
页面中若大量使用大图资源,会造成页面切换的卡顿,导致系统内存升高,甚至白屏崩溃。
......
......@@ -90,7 +90,6 @@ npm run build:%PLATFORM%
* 但vscode等其他开发工具,在vue或uni-app领域,开发效率比不过HBuilderX。详见:[https://ask.dcloud.net.cn/article/35451](https://ask.dcloud.net.cn/article/35451)
* 发布App时,仍然需要使用HBuilderX。其他开发工具无法发布App,但可以发布H5。如需开发App,可以先在HBuilderX里运行起来,然后在其他编辑器里修改保存代码,代码修改后会自动同步到手机基座。
* 如果使用``cli``创建项目,那下载HBuilderX时只需下载10M的标准版即可。因为编译器已经安装到项目下了。
*`cli` 使用有疑问,欢迎扫码加入 uni-app 微信交流群讨论:
<br/><img src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/wx-barcode.png" width="250"/>
注意:HBuilderX创建的项目,一样可以使用npm,参考:[https://uniapp.dcloud.io/frame?id=npm%e6%94%af%e6%8c%81](https://uniapp.dcloud.io/frame?id=npm%e6%94%af%e6%8c%81)
......@@ -44,7 +44,6 @@ uni-app自带的模板有 Hello uni-app ,是官方的组件和API示例。还
</div>
如手机无法识别,请点击菜单运行-运行到手机或模拟器-真机运行常见故障排查指南。
注意目前开发App也需要安装微信开发者工具。
运行的快捷键是`Ctrl+r`
HBuilderX 还提供了快捷运行菜单,可以按数字快速选择要运行的设备:
......
......@@ -44,7 +44,6 @@ uni-app自带的模板有 Hello uni-app ,是官方的组件和API示例。还
</div>
如手机无法识别,请点击菜单运行-运行到手机或模拟器-真机运行常见故障排查指南。
注意目前开发App也需要安装微信开发者工具。
运行的快捷键是`Ctrl+r`
HBuilderX 还提供了快捷运行菜单,可以按数字快速选择要运行的设备:
......@@ -185,7 +184,5 @@ npm run build:%PLATFORM%
* 但vscode等其他开发工具,在vue或uni-app领域,开发效率比不过HBuilderX。详见:[https://ask.dcloud.net.cn/article/35451](https://ask.dcloud.net.cn/article/35451)
* 发布App时,仍然需要使用HBuilderX。其他开发工具无法发布App,但可以发布H5。如需开发App,可以先在HBuilderX里运行起来,然后在其他编辑器里修改保存代码,代码修改后会自动同步到手机基座。
* 如果使用``cli``创建项目,那下载HBuilderX时只需下载10M的标准版即可。因为编译器已经安装到项目下了。
*`cli` 使用有疑问,欢迎扫码加入 uni-app 微信交流群讨论:
<br/><img src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/wx-barcode.png" width="250"/>
注意:HBuilderX创建的项目,一样可以使用npm,参考:[https://uniapp.dcloud.io/frame?id=npm%e6%94%af%e6%8c%81](https://uniapp.dcloud.io/frame?id=npm%e6%94%af%e6%8c%81)
#### uni-app选型评估23问
如果你关心竞品对比,这里有几份详尽对比:
2. 只做App,flutter、react native等App跨平台框架对比,参考:[https://ask.dcloud.net.cn/article/36083](https://ask.dcloud.net.cn/article/36083)
#### uni-app选型评估常见问题
**uni-app 有哪些已上线的成功案例?**
uni-app是当今主流的开发框架,DCloud有600万开发者,uni统计手机端月活10亿,华为、阿里、腾讯、字节跳动、美团、京东、快手、vivo都在用,案例参考[uni-app 应用案例](http://uniapp.dcloud.io/case)
uni-app是当今主流的开发框架,DCloud有800万开发者,uni统计手机端月活10亿,阿里、腾讯、字节跳动、美团、京东、vivo都在用,案例参考[uni-app 应用案例](http://uniapp.dcloud.io/case)
**uni-app收费吗?**
......@@ -70,7 +66,6 @@ uni-app提供了大量的扩展api解决了这个问题,并且发展了成熟
没学过vue的同学,也不用掌握vue的全部,只需了解vue基础语法、虚拟dom、数据绑定、组件、vuex,其他如路由、loader 不用学,cli、node.js、webpack也不需要学。
**uni-app 开发体验如何?支持现代前端开发流程吗?**
`uni-app` 积极拥抱社区现有的现代开发流程,包括但不限于:
......@@ -90,7 +85,6 @@ uni-app提供了大量的扩展api解决了这个问题,并且发展了成熟
- 丰富的插件市场为开发者提供数千款现成的轮子,[https://ext.dcloud.net.cn](https://ext.dcloud.net.cn)
- App和H5提供了renderjs,使得浏览器专用的库也可以在App和H5里使用,[参考](https://uniapp.dcloud.io/frame?id=renderjs)
- 支持 NPM 包管理系统,[参考](http://uniapp.dcloud.io/frame?id=npm%E6%94%AF%E6%8C%81)
- 支持 mpvue 项目及组件,[参考](http://ask.dcloud.net.cn/article/34945)
- 支持原生插件,见插件市场:[https://ext.dcloud.net.cn](https://ext.dcloud.net.cn)
......@@ -107,7 +101,7 @@ Android4.4、iOS9是官方会保障兼容的。
**uni-app的社区活跃吗?**
加入`uni-app`的群就知道,几十个QQ/微信群每天数万条聊天记录,非常活跃。论坛里每天数百个帖子。
`uni-app`问答社区每天新增数百个帖子。
插件市场内容也非常丰富,各种轮子方便可用。[https://ext.dcloud.net.cn/](https://ext.dcloud.net.cn/),并且很多轮子的uni-app版。
......@@ -128,26 +122,7 @@ DCloud是一家遵纪守法的公司,不会做损害自己名誉的事情。
**DCloud提供哪些技术支持?碰到框架bug影响业务怎么办?**
`uni-app` 是DCloud全力打造的重点产品,不是非专业公司的KPI项目。不会因为某些负责人的流动导致框架烂尾。
`uni-app` 的github上的dev分支是频繁更新的,可随时修复bug。并且作为开源产品,开发者也可以修改源码。
`uni-app` 的app引擎,支持原生扩展,只要你会原生扩展,就不怕app引擎有限制,大不了自己补一个原生插件进去。
开发者碰到问题,可以通过如下途径进行反馈交流:
- ask社区:[https://ask.dcloud.net.cn/explore/category-12](https://ask.dcloud.net.cn/explore/category-12)
- QQ群:参考官网左侧导航显示的QQ群列表
另外,如果您确实需要商业化的保障才安心,也可以申请付费技术支持。[参考](https://ask.dcloud.net.cn/article/13015)
**大型互联网公司发布的开源框架,是不是更有影响力?**
大型互联网公司在自用某个项目时,解决了某个问题,把它剥离出来开源,这个是众多大公司开源项目的来源和初衷。
而之所以把内部自用的框架开源出来,基本是为了在技术圈塑造形象和威望。对团队而言,有助于招聘;对负责人个人而言,有助于晋升和提升名气。
这类开源项目被戏称为KPI项目,往往逃不开4个魔咒:
1. 很多项目开源后一旦取得成绩,负责人就升职调岗,或者因为其他原因最初立项负责人离职,于是之前的开源项目就慢慢变凉。
2. 其设计初衷是为公司内部使用的,不是站在广泛的开发者需求角度设计的,其他开发者使用时会遇到各种问题。
3. 大型互联网公司的主业都是toC的,而不是to开发者。投很多资源持续维护这些开源项目并不是其公司目标,也不会有回报。
4. 优秀的程序员和优秀的开发框架设计者是2个层面的问题,不是说某些互联网大厂的前端技术人员水平不足,而是他们缺少面向开发者设计产品的经验,这种经验需要长期为开发者提供服务的团队才能具备。经验不足者设计的产品不会好用。
```DCloud```这家公司就是为开发者而生的,优秀的人才和资源全部是为开发者服务的,产品立项之初广泛调研不同开发者的需求,产品发布后持续迭代,让开发者们使用的更便利。
开发者碰到问题,可以到[github](https://github.com/dcloudio/uni-app)提交issue。
## 国内应用市场上架
最近为有效治理App强制授权、过度索权、超范围收集个人信息等现象,落实《网络安全法》《消费者权益保护法》的要求,保障个人信息安全,各大应用市场都加强应用审核的检测,要求应用必须符合相关政策,否则应用将有被通报或下架的风险。
**应用市场上架审核合规指南:**[https://ask.dcloud.net.cn/article/39073](https://ask.dcloud.net.cn/article/39073)
## Google Play上架
......
`uni-app` App 端内置 [HTML5+](https://www.html5plus.org/doc/) 引擎,让 js 可以直接调用丰富的原生能力。
#### 条件编译调用 HTML5+
H5 等平台是没有 HTML5+ 扩展规范的,因此在 `uni-app` 调用 HTML5+ 的扩展规范时,需要注意使用条件编译。否则运行到h5等平台会出现 `plus is not defined`错误。
```javascript
// #ifdef APP-PLUS
var appid = plus.runtime.appid;
console.log('应用的 appid 为:' + appid);
// #endif
```
#### `uni-app`不需要 `plus ready`
在html中使用plus的api,需要等待plus ready。
`uni-app`不需要等,可以直接使用。而且如果你调用plus ready,反而不会触发。
#### `uni-app` 中的事件监听
在普通的 H5+ 项目中,需要使用 `document.addEventListener` 监听原生扩展的事件。
`uni-app` 中,没有 document。可以使用 `plus.globalEvent.addEventListener` 来实现(注意manifest中需开启新编译器,即自定义组件模式"usingComponents":true)。
```javascript
// #ifdef APP-PLUS
// 监听设备网络状态变化事件
plus.globalEvent.addEventListener('netchange', function(){});
// #endif
```
同理,在 `uni-app` 中使用 Native.js 时,一些 Native.js 中对于原生事件的监听同样需要按照上面的方法去实现。
注意:旧编译器(非自定义组件模式)不支持 `plus.globalEvent` 这个对象。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册