Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
b3755979
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
144
Star
2
Fork
33
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
9
列表
看板
标记
里程碑
合并请求
11
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
9
Issue
9
列表
看板
标记
里程碑
合并请求
11
合并请求
11
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
b3755979
编写于
7月 31, 2024
作者:
DCloud_iOS_XHY
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update unielement.md
上级
83d52869
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
71 addition
and
41 deletion
+71
-41
docs/dom/unielement.md
docs/dom/unielement.md
+71
-41
未找到文件。
docs/dom/unielement.md
浏览文件 @
b3755979
...
...
@@ -122,23 +122,23 @@ app平台 getAttribute 不支持获取 class、style 属性, uvue/vue 页面
<!-- CUSTOMTYPEJSON.UniElement.methods.getAndroidView.compatibility -->
<!-- CUSTOMTYPEJSON.UniElement.methods.getAndroidView.tutorial -->
**getAndroidView获取原生View:**
```
uts
//通过elementId 获取到UniElement对象
const element = uni.getElementById(elementId)
//getElementById不设置泛型,获取到安卓View
if(element != null) {
const view = element.getAndroidView()
}
<!-- CUSTOMTYPEJSON.UniElement.methods.getAndroidView.tutorial -->
**getAndroidView获取原生View:**
```
uts
//通过elementId 获取到UniElement对象
const element = uni.getElementById(elementId)
//getElementById不设置泛型,获取到安卓View
if(element != null) {
const view = element.getAndroidView()
}
```
**注意事项:**
+
安卓平台页面渲染时元素才会构建View,所以元素刚创建就获取View大概率是null,推荐页面onReady时获取。
+
安卓平台获取的原生View尽可能的避免设置View的background属性,会导致元素background、border、boxshadow css效果失效或设置的background不生效,与设置background时机有关。
**注意事项:**
+
安卓平台页面渲染时元素才会构建View,所以元素刚创建就获取View大概率是null,推荐页面onReady时获取。
+
安卓平台获取的原生View尽可能的避免设置View的background属性,会导致元素background、border、boxshadow css效果失效或设置的background不生效,与设置background时机有关。
<!-- CUSTOMTYPEJSON.UniElement.methods.getAndroidView_1.name -->
...
...
@@ -150,32 +150,32 @@ if(element != null) {
<!-- CUSTOMTYPEJSON.UniElement.methods.getAndroidView_1.compatibility -->
<!-- CUSTOMTYPEJSON.UniElement.methods.getAndroidView_1.tutorial -->
**getAndroidView通过泛型定义获取原生View:**
```
uts
//通过webViewElementId 获取web-view标签的UniElement对象
const webViewElement = uni.getElementById(webViewElementId)
//getElementById设置泛型为安卓底层WebView对象, 直接获取WebView 如果泛型不匹配会返回null
if(webViewElement != null) {
const webview = webViewElement.getAndroidView<WebView>()
}
```
**可通过getAndroidView泛型明确定义View类型的组件:**
| 组件 | 对应 android 平台原生View |
| --------- | -------------------------------- |
|
[
view
](
https://doc.dcloud.net.cn/uni-app-x/component/view.html
)
|
[
ViewGroup
](
https://developer.android.google.cn/reference/android/view/ViewGroup
)
|
|
[
input
](
https://doc.dcloud.net.cn/uni-app-x/component/input.html
)
|
[
AppCompatEditText
](
https://developer.android.google.cn/reference/kotlin/androidx/appcompat/widget/AppCompatEditText
)
|
|
[
textarea
](
https://doc.dcloud.net.cn/uni-app-x/component/textarea.html
)
|
[
AppCompatEditText
](
https://developer.android.google.cn/reference/kotlin/androidx/appcompat/widget/AppCompatEditText
)
|
<!-- CUSTOMTYPEJSON.UniElement.methods.getAndroidView_1.tutorial -->
**getAndroidView通过泛型定义获取原生View:**
```
uts
//通过webViewElementId 获取web-view标签的UniElement对象
const webViewElement = uni.getElementById(webViewElementId)
//getElementById设置泛型为安卓底层WebView对象, 直接获取WebView 如果泛型不匹配会返回null
if(webViewElement != null) {
const webview = webViewElement.getAndroidView<WebView>()
}
```
**可通过getAndroidView泛型明确定义View类型的组件:**
| 组件 | 对应 android 平台原生View |
| --------- | -------------------------------- |
|
[
view
](
https://doc.dcloud.net.cn/uni-app-x/component/view.html
)
|
[
ViewGroup
](
https://developer.android.google.cn/reference/android/view/ViewGroup
)
|
|
[
input
](
https://doc.dcloud.net.cn/uni-app-x/component/input.html
)
|
[
AppCompatEditText
](
https://developer.android.google.cn/reference/kotlin/androidx/appcompat/widget/AppCompatEditText
)
|
|
[
textarea
](
https://doc.dcloud.net.cn/uni-app-x/component/textarea.html
)
|
[
AppCompatEditText
](
https://developer.android.google.cn/reference/kotlin/androidx/appcompat/widget/AppCompatEditText
)
|
|
[
web-view
](
https://doc.dcloud.net.cn/uni-app-x/component/web-view.html
)
|
[
WebView
](
https://developer.android.google.cn/reference/android/webkit/WebView
)
|
**注意事项:**
+
安卓平台页面渲染时元素才会构建View,所以元素刚创建就获取View大概率是null,推荐页面onReady时获取。
+
安卓平台获取的原生View尽可能的避免设置View的background属性,会导致元素background、border、boxshadow 失效或设置的background不生效,与设置background时机有关。
**注意事项:**
+
安卓平台页面渲染时元素才会构建View,所以元素刚创建就获取View大概率是null,推荐页面onReady时获取。
+
安卓平台获取的原生View尽可能的避免设置View的background属性,会导致元素background、border、boxshadow 失效或设置的background不生效,与设置background时机有关。
<!-- CUSTOMTYPEJSON.UniElement.methods.getAndroidActivity.name -->
...
...
@@ -225,6 +225,36 @@ if(webViewElement != null) {
<!-- CUSTOMTYPEJSON.UniElement.methods.getIOSView.tutorial -->
**getIOSView 获取原生 View:**
```
uts
//通过 webViewElementId 获取 web-view 标签的 UniElement 对象
const webViewElement = uni.getElementById(webViewElementId)
//获取原生 view
const view = webViewElement?.getIOSView();
//判断 view 是否存在,类型是否为 WKWebView
if (view != null && view instanceof WKWebView) {
//将 view 转换为 WKWebView 类型
const webView = view! as WKWebView;
}
```
更多示例请参考 uts 插件
[
uts-get-native-view
](
https://gitcode.net/dcloud/hello-uni-app-x/-/blob/alpha/uni_modules/uts-get-native-view/utssdk/app-ios/index.uts
)
**组件对应原生 View 类型:**
| 组件 | 对应 iOS 平台原生 View |
| --------- | -------------------------------- |
|
[
view
](
https://doc.dcloud.net.cn/uni-app-x/component/view.html
)
|
[
UIView
](
https://developer.apple.com/documentation/uikit/uiview
)
|
|
[
input
](
https://doc.dcloud.net.cn/uni-app-x/component/input.html
)
|
[
UITextField
](
https://developer.apple.com/documentation/uikit/uitextfield
)
|
|
[
textarea
](
https://doc.dcloud.net.cn/uni-app-x/component/textarea.html
)
|
[
UITextView
](
https://developer.apple.com/documentation/uikit/uitextview
)
|
|
[
web-view
](
https://doc.dcloud.net.cn/uni-app-x/component/web-view.html
)
|
[
WKWebView
](
https://developer.apple.com/documentation/webkit/wkwebview
)
|
**注意事项:**
+
iOS平台 uvue 环境使用 js 驱动无法处理原生类型,getIOSView 方法需要在 uts 插件中使用。
+
iOS平台页面渲染时元素才会构建View,所以元素刚创建就获取 View 大概率是 null,推荐页面 onReady 时获取。
<!-- CUSTOMTYPEJSON.UniElement.methods.addEventListener.name -->
<!-- CUSTOMTYPEJSON.UniElement.methods.addEventListener.description -->
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录