【每日学点 HarmonyOS Next 知识】输入框自动获取焦点、JS 桥实现方式、Popup 设置全屏蒙版、鼠标事件适配、Web 跨域

1、HarmonyOS TextInput 或 TextArea 如何自动获取焦点?
可以使用 focusControl.requestFocus 对需要获取焦点的组件设置焦点,具体可以参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-focus-V5

示例代码如下:
唤起的输入法键盘类型默认是文本输入 textinputtype 为 0,textinputtype 类型可以参考如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inputmethod-V5
2、HarmonyOS JSBridge 有哪些实现方式?
应用侧与前端侧交互可以参考下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkweb-ndk-jsbridge-V5


上图展示了具有普遍适用性的小程序的通用架构。在这一架构中,逻辑层依赖于应用程序自带的 JavaScript 运行时,该运行时在一个已有的 C++环境中运行。通过 Native 接口,逻辑层能够直接在 C++环境中与视图层(其中 ArkWeb 充当渲染器)进行通信,无需回退至 ArkTS 环境使用 ArkTS JSBridge 接口。
左图是使用 ArkTS JSBridge 接口构建小程序的方案,如红框所示,应用需要先调用到 ArkTS 环境,再调用到 C++环境。右图是使用 Native JSBridge 接口构建小程序的方案,不需要 ArkTS 环境和 C++环境的切换,执行效率更高。

Native JSBridge 方案可以解决 ArkTS 环境的冗余切换,同时允许回调在非 UI 线程上运行,避免造成 UI 阻塞。
3、HarmonyOS 怎么给 bindPopup 设置全屏的蒙版?
怎么给 bindPopup 设置全屏的蒙版
参考如下 demo:
4、HarmonyOS web 组件中的鼠标右键单机事件在 2in1 设备正常使用,在 tablet 中失效,应该如何兼容?
可以参考交互事件归一接口,使得不同交互设备上的交互体验一致,尽量减少不同输入设备适配工作;

交互事件归一开发文档参考链接如下:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/key-features/multi-device-app-dev/interaction-event-normalization.md
5、HarmonyOS web 组件通过 file://协议加载本地文件,本地文件 JS 中发起 http 请求报错,提示跨域了,这种如何解决?
需自行配置 schemeMap 和 mimeTypeMap。
版权声明: 本文为 InfoQ 作者【轻口味】的原创文章。
原文链接:【http://xie.infoq.cn/article/b1f503c6e71f29ccec0fd86ab】。文章转载请联系作者。
评论