native-view.md 3.0 KB
Newer Older
1 2
## native-view

DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
3 4 5 6 7 8
<!-- UTSCOMJSON.native-view.description -->

`native-view`自身没有渲染内容,开发者可以通过DOM API获取到`native-view`对应的原生view,然后提供平台原生view与`native-view`进行绑定,`native-view`将展示该view的渲染内容。

`<native-view>`组件是uni-app x下扩展原生组件(如map)的重要方式。事实上官方的map组件就是使用`<native-view>`开发的。详见下方的使用场景章节。

9 10 11 12 13 14 15 16 17 18
<!-- UTSCOMJSON.native-view.compatibility -->

<!-- UTSCOMJSON.native-view.attribute -->

<!-- UTSCOMJSON.native-view.event -->

<!-- UTSCOMJSON.native-view.component_type -->

### 使用场景

shutao-dc's avatar
shutao-dc 已提交
19
`native-view` 适用于开发[uts插件-标准模式组件](../plugin/uts-vue-component.md)
20 21 22

### 使用教程

shutao-dc's avatar
shutao-dc 已提交
23
#### 获取 UniNativeViewElement
24

shutao-dc's avatar
shutao-dc 已提交
25
`native-view`提供 @init 监听元素初始化,通过事件[UniNativeViewInitEvent](#uninativeviewinitevent)的 detail.element 获取到 [UniNativeViewElement](../dom/uninativeviewelement.md)
26

shutao-dc's avatar
shutao-dc 已提交
27
#### UniNativeViewElement绑定原生view
DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
28 29 30 31 32 33 34 35 36

**Android 平台:**

[UniNativeViewElement](../dom/uninativeviewelement.md) 提供[bindAndroidView](../dom/uninativeviewelement.md#bindandroidview)函数与`native-view`绑定android平台原生view

**IOS 平台:**

[UniNativeViewElement](../dom/uninativeviewelement.md) 提供[bindIOSView](../dom/uninativeviewelement.md#bindiosview)函数与`native-view`绑定ios平台原生view

shutao-dc's avatar
shutao-dc 已提交
37
#### 分发自定义事件
38

shutao-dc's avatar
shutao-dc 已提交
39
[UniNativeViewElement](../dom/uninativeviewelement.md) 提供了dispatchEvent分发event事件API,注意:事件数据类型暂时只支持[UniNativeViewEvent](#uninativeviewevent)
40

shutao-dc's avatar
shutao-dc 已提交
41
具体示例请参考:[native-button](https://gitcode.net/dcloud/hello-uni-app-x/-/blob/alpha/uni_modules/native-button/components/native-button/native-button.uvue)插件,该插件使用`native-view`封装原生button实现的native-button。
42

shutao-dc's avatar
shutao-dc 已提交
43 44 45 46
### 注意事项

+ app平台`native-view`组件绑定原生view后自动适配[组件全局属性](common.md#组件全局属性)
+ app平台`native-view`组件不支持自定义属性,使用[uts插件-标准模式组件-声明props](../plugin/uts-vue-component.md#组件声明props)实现自定义属性目的
shutao-dc's avatar
shutao-dc 已提交
47 48 49 50
+ android平台`native-view`组件不支持[list-item复用机制](list-item.md#list-item复用机制),list-item其他子组件不受影响正常启动复用业务。
+ android平台`native-view`组件不支持background、border、boxshadow属性
+ android平台`native-view`组件不支持子组件
+ android平台`native-view`组件不支持overflow属性设置visible,仅支持hidden
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

<!-- UTSCOMJSON.native-view.children -->

<!-- UTSCOMJSON.native-view.example -->

<!-- UTSCOMJSON.native-view.reference -->

## UniNativeViewEvent

<!-- CUSTOMTYPEJSON.UniNativeViewEvent.description -->

<!-- CUSTOMTYPEJSON.UniNativeViewEvent.extends -->

<!-- CUSTOMTYPEJSON.UniNativeViewEvent.param -->

<!-- CUSTOMTYPEJSON.UniNativeViewEvent.compatibility -->

<!-- CUSTOMTYPEJSON.UniNativeViewEvent.example -->