提交 3b8a51db 编写于 作者: shutao-dc's avatar shutao-dc
因为 它太大了无法显示 source diff 。你可以改为 查看blob
## uni.chooseVideo(options) @chooseVideo ## uni.chooseVideo(options) @choosevideo
<!-- UTSAPIJSON.chooseVideo.description --> <!-- UTSAPIJSON.chooseVideo.description -->
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<!-- UTSAPIJSON.getAppAuthorizeSetting.tutorial --> <!-- UTSAPIJSON.getAppAuthorizeSetting.tutorial -->
如需跳转到权限设置界面,参考[utsAndroid.gotoSystemPermissionActivity](../uts/utsandroid.md#gotoSystemPermissionActivity) 如需跳转到权限设置界面,参考[utsAndroid.gotoSystemPermissionActivity](../uts/utsandroid.md#gotosystempermissionactivity)
注意: 注意:
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
::: warning 注意事项 ::: warning 注意事项
- 获取OAID、AndroidID等其他设备信息,[见插件市场](https://ext.dcloud.net.cn/search?q=oaid&orderBy=Relevance&uni-appx=1) - 获取OAID、AndroidID等其他设备信息,[见插件市场](https://ext.dcloud.net.cn/search?q=oaid&orderBy=Relevance&uni-appx=1)
- romName值域候选 [详见](./get-system-info.md#romName) - romName值域候选 [详见](./get-system-info.md#romname)
- app平台devicePixelRatio属性,HBuilderX4.22及以下版本类型为string,HBuilderX4.23版本调整为number - app平台devicePixelRatio属性,HBuilderX4.22及以下版本类型为string,HBuilderX4.23版本调整为number
::: :::
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
## 注意事项 ## 注意事项
* 推荐使用成熟的网络拦截器插件,见[插件市场](https://ext.dcloud.net.cn/search?q=%E7%BD%91%E7%BB%9C%E6%8B%A6%E6%88%AA%E5%99%A8&uni-appx=1) * 推荐使用成熟的网络拦截器插件,见[插件市场](https://ext.dcloud.net.cn/search?q=%E7%BD%91%E7%BB%9C%E6%8B%A6%E6%88%AA%E5%99%A8&uni-appx=1)
* app-android平台 request 接口如需包装和传递泛型,需参考[泛型传递丢失注意](../plugin/uts-for-android.md#6.6 泛型传递丢失的问题)。成熟的拦截器插件均已自动处理这些问题。 * app-android平台 request 接口如需包装和传递泛型,需参考[泛型传递丢失注意](../plugin/uts-for-android.md#lost-generics)。成熟的拦截器插件均已自动处理这些问题。
* 如果使用泛型先创建RequestOptions实例,再传入uni.request(),此时请务必确保request要显式指定泛型,例: * 如果使用泛型先创建RequestOptions实例,再传入uni.request(),此时请务必确保request要显式指定泛型,例:
```typescript ```typescript
const options: RequestOptions<Person> = ... const options: RequestOptions<Person> = ...
......
...@@ -38,17 +38,17 @@ ...@@ -38,17 +38,17 @@
const buttonClick_changeText = () => { const buttonClick_changeText = () => {
title.value = "新文字内容" //对响应式变量title的.value属性赋值,界面上文字会自动同步修改 title.value = "新文字内容" //对响应式变量title的.value属性赋值,界面上文字会自动同步修改
} }
let titleShow = ref(true) //决定标题文字是否显示 let titleShow = ref(true) //决定标题文字是否显示
const buttonClick_showHide = () => { const buttonClick_showHide = () => {
titleShow.value = !titleShow.value //对响应式变量的.value属性赋值,界面上文字组件的v-if指令绑定了titleShow,所以会动态显示消失 titleShow.value = !titleShow.value //对响应式变量的.value属性赋值,界面上文字组件的v-if指令绑定了titleShow,所以会动态显示消失
} }
let titleColor = ref("black") //定义一个响应式变量titleColor,默认为黑色 let titleColor = ref("black") //定义一个响应式变量titleColor,默认为黑色
const buttonClick_changeColor = () => { const buttonClick_changeColor = () => {
titleColor.value = "red" //对响应式变量的.value属性赋值,界面上文字组件的style属性绑定了titleColor,所以会变为红色 titleColor.value = "red" //对响应式变量的.value属性赋值,界面上文字组件的style属性绑定了titleColor,所以会变为红色
} }
const imgerror = (event : ImageErrorEvent) => { // image组件加载失败时触发 const imgerror = (event : ImageErrorEvent) => { // image组件加载失败时触发
console.log(event.type, event.detail); //错误的详情 console.log(event.type, event.detail); //错误的详情
} }
...@@ -92,7 +92,7 @@ buttonClick_changeText 是script里定义的一个函数。\ ...@@ -92,7 +92,7 @@ buttonClick_changeText 是script里定义的一个函数。\
比如上面例子中image组件的error事件,绑定到imgerror函数,它有一个参数event对象,类型是ImageErrorEvent。接下来的代码打印了event对象的2个属性。 比如上面例子中image组件的error事件,绑定到imgerror函数,它有一个参数event对象,类型是ImageErrorEvent。接下来的代码打印了event对象的2个属性。
- vue指令 - vue指令
vue提供的一批特殊写法的属性,它们以v-开头,比如上面例子中text组件的v-if指令,绑定了一个titleShow的响应式变量,根据变量的true或false可以决定text组件是否显示。详见[vue指令](./built-in.md)\ vue提供的一批特殊写法的属性,它们以v-开头,比如上面例子中text组件的v-if指令,绑定了一个titleShow的响应式变量,根据变量的true或false可以决定text组件是否显示。详见[vue指令](../vue/built-in.md)\
有一种特殊指令`v-bind`,一种把属性值变成script以便绑定响应式变量的写法,它的完整写法是 v-bind:普通属性名 = "属性值", 有一种特殊指令`v-bind`,一种把属性值变成script以便绑定响应式变量的写法,它的完整写法是 v-bind:普通属性名 = "属性值",
但它更常见的写法是简写为在普通属性前面加个冒号,比如上面例子中text组件的:style,`:style="'color:' + titleColor"`\ 但它更常见的写法是简写为在普通属性前面加个冒号,比如上面例子中text组件的:style,`:style="'color:' + titleColor"`\
这个写法的意思是,text组件的style样式中,color属性的值绑定到了script定义的响应式变量titleColor上,修改这个响应式变量的值,text组件的文字颜色就会跟着变化。\ 这个写法的意思是,text组件的style样式中,color属性的值绑定到了script定义的响应式变量titleColor上,修改这个响应式变量的值,text组件的文字颜色就会跟着变化。\
......
...@@ -25,6 +25,29 @@ ...@@ -25,6 +25,29 @@
支持http、https。 支持http、https。
app平台使用系统Webview组件,由系统Webview管理缓存。 app平台使用系统Webview组件,由系统Webview管理缓存。
### 获取原生WebView对象
通过 UniElement 的 getAndroidView 和 getIOSView 方法可以获取到 web-view 组件对应的原生 Webview 对象,从而可以调用部分原生 API 以扩展当前 web-view 组件未提供的能力。
比如:Android 平台和 iOS 平台的原生 WebView 都提供了 canGoBack 和 canGoForward 两个 API,用来判断当前网页是否可以回退和前进。但 uni-app x 的 web-view 组件没有提供上述 API,下面则举例说明在 Android 平台如何通过获取原生 WebView 对象来实现上述能力(iOS 平台写法类似)。
```js
import WebView from 'android.webkit.WebView';
function canGoBack() : boolean {
const element = uni.getElementById(elementId);
const webview = element?.getAndroidView<WebView>();
// 调用原生 WebView 的 canGoBack 方法
return webview == null ? false : webview.canGoBack();
}
function canGoForward() : boolean {
const element = uni.getElementById(elementId);
const webview = element?.getAndroidView<WebView>();
return webview == null ? false : webview.canGoForward();
}
```
<!-- UTSCOMJSON.web-view.children --> <!-- UTSCOMJSON.web-view.children -->
<!-- UTSCOMJSON.web-view.example --> <!-- UTSCOMJSON.web-view.example -->
......
...@@ -138,20 +138,20 @@ pages.json 支持以下属性配置国际化信息 ...@@ -138,20 +138,20 @@ pages.json 支持以下属性配置国际化信息
## 框架内置组件和API国际化 ## 框架内置组件和API国际化
uni-app x 的部分组件和API涉及界面,框架内置支持的国际化语言,如果手机os或浏览器语言在这些内置国际化语言列表中会自适应。如果不在5种内,会默认为英文。 uni-app x 的部分组件和API涉及界面,框架内置支持的国际化语言,如果手机os或浏览器语言在这些内置国际化语言列表中会自适应。如果不在5种内,会默认为英文。
- app-Android平台 - app-Android平台
* 中文简体 * 中文简体
* 中文繁体 * 中文繁体
* 英语 * 英语
* 法语(HBuilderX 4.25及以上版本支持) * 法语(HBuilderX 4.25及以上版本支持)
* 西班牙语(HBuilderX 4.25及以上版本支持) * 西班牙语(HBuilderX 4.25及以上版本支持)
- app-iOS平台 - app-iOS平台
* 中文简体 * 中文简体
* 中文繁体(HBuilderX 4.25及以上版本支持) * 中文繁体(HBuilderX 4.25及以上版本支持)
* 英语(HBuilderX 4.25及以上版本支持) * 英语(HBuilderX 4.25及以上版本支持)
* 法语(HBuilderX 4.25及以上版本支持) * 法语(HBuilderX 4.25及以上版本支持)
* 西班牙语(HBuilderX 4.25及以上版本支持) * 西班牙语(HBuilderX 4.25及以上版本支持)
- web平台 - web平台
* 中文简体 * 中文简体
* 中文繁体 * 中文繁体
* 英语 * 英语
...@@ -161,7 +161,7 @@ uni-app x 的部分组件和API涉及界面,框架内置支持的国际化语 ...@@ -161,7 +161,7 @@ uni-app x 的部分组件和API涉及界面,框架内置支持的国际化语
涉及界面的组件和API包括: 涉及界面的组件和API包括:
- [uni.showModal](./api/prompt.md#showmodal):默认的确定和取消按钮文字,会根据os和浏览器的语言自适应。也可以在API中通过参数自己指定文字。 - [uni.showModal](./api/prompt.md#showmodal):默认的确定和取消按钮文字,会根据os和浏览器的语言自适应。也可以在API中通过参数自己指定文字。
- [uni.showActionSheet](./api/prompt.md#showactionsheet):取消按钮文字,会根据os和浏览器的语言自适应。 - [uni.showActionSheet](./api/prompt.md#showactionsheet):取消按钮文字,会根据os和浏览器的语言自适应。
- [uni.chooseImage](./api/choose-image.md#chooseimage)[uni.chooseVideo](./api/choose-video.md#chooseVideo) - [uni.chooseImage](./api/choose-image.md#chooseimage)[uni.chooseVideo](./api/choose-video.md#choosevideo)
+ app平台弹出的`拍摄``从相册选择`选择框不支持国际化,可以设置`sourceType`参数值为单项自己实现选择框来处理。 + app平台弹出的`拍摄``从相册选择`选择框不支持国际化,可以设置`sourceType`参数值为单项自己实现选择框来处理。
* `拍摄` 打开的是系统相机界面,在app平台跟随系统语言,不受uni-app x内置国际化语言列表限制 * `拍摄` 打开的是系统相机界面,在app平台跟随系统语言,不受uni-app x内置国际化语言列表限制
* `从相册选择` 打开的是平台实现的界面,受uni-app x内置国际化语言列表限制 * `从相册选择` 打开的是平台实现的界面,受uni-app x内置国际化语言列表限制
...@@ -312,15 +312,15 @@ Web平台注意要区分系统语言和应用语言的概念。 ...@@ -312,15 +312,15 @@ Web平台注意要区分系统语言和应用语言的概念。
可以得到设备OS的语言、运行宿主host的语言以及应用自身的语言。 可以得到设备OS的语言、运行宿主host的语言以及应用自身的语言。
- [uni.getLocale](/api/ui/locale?id=getlocale) - [uni.getLocale](https://uniapp.dcloud.io/api/ui/locale.html#getlocale)
获取应用当前使用的语言 获取应用当前使用的语言
- [uni.setLocale](/api/ui/locale?id=setlocale) - [uni.setLocale](https://uniapp.dcloud.io/api/ui/locale.html#setlocale)
设置应用语言 设置应用语言
- [uni.onLocaleChange](/api/ui/locale?id=onlocalechange) - [uni.onLocaleChange](https://uniapp.dcloud.io/api/ui/locale.html#onlocalechange)
当前应用语言发生变化时,触发回调。也就是`uni.setLocale`执行时。 当前应用语言发生变化时,触发回调。也就是`uni.setLocale`执行时。
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
所以在原生应用中集成uni-app x原生SDK,更像是集成一个小程序SDK。 所以在原生应用中集成uni-app x原生SDK,更像是集成一个小程序SDK。
当然uni-app x的性能是最好的,它不会像小程序那样缓慢,也比react native/weex/flutter等性能和兼容性更好(评测[另见](../../select.md) 当然uni-app x的性能是最好的,它不会像小程序那样缓慢,也比react native/weex/flutter等性能和兼容性更好(评测[另见](../select.md)
uni-app x原生SDK,给原生开发者提供了更多可能性: uni-app x原生SDK,给原生开发者提供了更多可能性:
1. 一个最高性能的跨平台框架,让开发效率、运行性能、开发成本这个原来的不可能三角变成可以兼得 1. 一个最高性能的跨平台框架,让开发效率、运行性能、开发成本这个原来的不可能三角变成可以兼得
......
此差异已折叠。
...@@ -324,7 +324,7 @@ implementation 'androidx.recyclerview:recyclerview:1.0.0' ...@@ -324,7 +324,7 @@ implementation 'androidx.recyclerview:recyclerview:1.0.0'
``` ```
#### uni-app #### uni-app
```gradle ```gradle
implementation 'com.github.bumptech.glide:glide:4.9.0' implementation 'com.github.bumptech.glide:glide:4.9.0'
...@@ -944,7 +944,7 @@ function getAppName(context : Context) : string { ...@@ -944,7 +944,7 @@ function getAppName(context : Context) : string {
} }
``` ```
### 6.6 泛型传递丢失的问题 ### 6.6 泛型传递丢失的问题 @lost-generics
如果在UTS中声明一个包含泛型声明的方法,可能会出现泛型丢失,原因是因为普通的kotlin 方法没有实现泛型的传递 如果在UTS中声明一个包含泛型声明的方法,可能会出现泛型丢失,原因是因为普通的kotlin 方法没有实现泛型的传递
...@@ -1006,4 +1006,3 @@ console.log(getClassByInstance); ...@@ -1006,4 +1006,3 @@ console.log(getClassByInstance);
UTS插件本地调试尚不支持直接使用so文件,需要将so文件和调用代码封装为AAR 或者分别集成 so和jar文件 UTS插件本地调试尚不支持直接使用so文件,需要将so文件和调用代码封装为AAR 或者分别集成 so和jar文件
AAR调用示例参考:[hello uts](https://gitcode.net/dcloud/hello-uts/-/tree/master/uni_modules/uts-toast) AAR调用示例参考:[hello uts](https://gitcode.net/dcloud/hello-uts/-/tree/master/uni_modules/uts-toast)
...@@ -23,8 +23,8 @@ ...@@ -23,8 +23,8 @@
| ----------------------------------- | ------------------------------------------- | ---------------- | | ----------------------------------- | ------------------------------------------- | ---------------- |
| 等于 Equal (==) | 如果两边操作数相等时返回 true。 | var1==var2 | | 等于 Equal (==) | 如果两边操作数相等时返回 true。 | var1==var2 |
| 不等于 Not equal (!=) | 如果两边操作数不相等时返回 true | var1!=var2 | | 不等于 Not equal (!=) | 如果两边操作数不相等时返回 true | var1!=var2 |
| 引用相等 Reference equal (===) | 比较对象类型时,两边操作数指向同一个对象返回 true。比较基础类型时各平台有差异,[详情](#completeComparison)。 | var1===var2 | | 引用相等 Reference equal (===) | 比较对象类型时,两边操作数指向同一个对象返回 true。比较基础类型时各平台有差异,[详情](#completecomparison)。 | var1===var2 |
| 引用不等 Reference not equal (!==) | 比较对象类型时,两边操作数不指向同一个对象时返回 true。比较基础类型时各平台有差异,[详情](#completeComparison)。 | var1!==var2 | | 引用不等 Reference not equal (!==) | 比较对象类型时,两边操作数不指向同一个对象时返回 true。比较基础类型时各平台有差异,[详情](#completecomparison)。 | var1!==var2 |
| 大于 Greater than (>) | 左边的操作数大于右边的操作数返回 true | var1>var2 | | 大于 Greater than (>) | 左边的操作数大于右边的操作数返回 true | var1>var2 |
| 大于等于 Greater than or equal (>=) | 左边的操作数大于或等于右边的操作数返回 true | var1>=var2 | | 大于等于 Greater than or equal (>=) | 左边的操作数大于或等于右边的操作数返回 true | var1>=var2 |
| 小于 Less than (<) | 左边的操作数小于右边的操作数返回 true | var1<var2 | | 小于 Less than (<) | 左边的操作数小于右边的操作数返回 true | var1<var2 |
...@@ -179,7 +179,7 @@ const status = age >= 18 ? "adult" : "minor"; ...@@ -179,7 +179,7 @@ const status = age >= 18 ? "adult" : "minor";
- `>>=` - `>>=`
* 右移赋值运算符 (>>=) 将变量向右移动指定数量的位,并将结果赋值给变量。 * 右移赋值运算符 (>>=) 将变量向右移动指定数量的位,并将结果赋值给变量。
- `===` - `===`
* 当两边操作数指向同一个对象时,引用相等 (===) 运算符返回true。不同平台有差距,[见下](#completeComparison) * 当两边操作数指向同一个对象时,引用相等 (===) 运算符返回true。不同平台有差距,[见下](#completecomparison)
- `!==` - `!==`
* 当两边操作数不指向同一个对象时,引用不等 (!==) 运算符返回true。 * 当两边操作数不指向同一个对象时,引用不等 (!==) 运算符返回true。
- `-` - `-`
...@@ -258,7 +258,7 @@ uts 中比较运算符在大部分场景下和 ts 中的行为一致,但是在 ...@@ -258,7 +258,7 @@ uts 中比较运算符在大部分场景下和 ts 中的行为一致,但是在
| 不同的专有类型变量比较 | let a: Int = 1; let b: Float = 3.14.toFloat(); a > b | 结果为false |编译失败,不同类型变量不能比较 | | 不同的专有类型变量比较 | let a: Int = 1; let b: Float = 3.14.toFloat(); a > b | 结果为false |编译失败,不同类型变量不能比较 |
### 比较运算符 == != === !==@completeComparison ### 比较运算符 == != === !==@completecomparison
| 场景 | 示例 | Kottlin 结果 | Swift 结果 | | 场景 | 示例 | Kottlin 结果 | Swift 结果 |
...@@ -387,7 +387,7 @@ let n:number = Number.from(d) // 正确 ...@@ -387,7 +387,7 @@ let n:number = Number.from(d) // 正确
let n:number = d as number // 错误 let n:number = d as number // 错误
``` ```
> 虽然在某些情况下使用 as 转换也可以正常工作,但为了保证各平台兼容性推荐使用上述方法转换 > 虽然在某些情况下使用 as 转换也可以正常工作,但为了保证各平台兼容性推荐使用上述方法转换
只允许将类型as为具体或更不具体的类型,不能强制转换两个不可能兼容的类型: 只允许将类型as为具体或更不具体的类型,不能强制转换两个不可能兼容的类型:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册