ToB企服应用市场:ToB评测及商务社交产业平台

标题: 鸿蒙口试 2025-01-10 [打印本页]

作者: 八卦阵    时间: 2025-1-11 19:43
标题: 鸿蒙口试 2025-01-10
写了鉴权工具,你在项目中申请了那些权限?(常用权限)



使用安全控件的话可以免申请权限?为啥不考虑使用安全控件?

使用安全控件确实可以在某些情况下免去你在鸿蒙体系中申请权限的需要。安全控件是一种体系提供的ArkUI组件,它们允许应用在用户点击后自动授权,无需额外的弹窗授权。这种方式不仅简化了开辟者和用户的操作,还可以或许基于场景化授权,匹配用户的真实意图,从而减少弹窗打扰,提升用户体验。
安全控件的紧张优点包罗:
目前,体系提供了三类安全控件:

例如,在谈天界面发送及时定位信息的场景中,你可以直接使用位置控件来得到临时的精准定位授权,这样就可以避免长时间使用位置信息或后台使用位置信息的情况,从而满足权限最小化和提升隐私体验的要求2。
鉴于这些优势,使用安全控件成为了一种优选的解决方案,尤其是在应用不需要持续或后台访问敏感信息的情况下。这样不仅可以提高应用的隐私保护水平,还可以加强用户的信托和使用体验。
约束与限定
安全控件因其自动授权的特性,为了保障用户的隐私不被恶意应用获取,针对安全控件作了许多的限定。应用开辟者需保证安全控件在应用界面上清晰可见、用户能明确辨认,防止因覆盖、肴杂等因素导致授权失败。
当因控件样式不正当导致授权失败的情况发生时,请开辟者查抄装备错误日志,过滤关键字"SecurityComponentCheckFail"可以获取具体原因。
大概会导致授权失败的问题(包罗但不限于):



扫描二维码需要相机权限吗?拍照需要相机权限吗?

需要
在鸿蒙(HarmonyOS)开辟中,使用相机举行扫码和拍照确实需要申请相机权限。这是因为相机操作涉及到用户的隐私和安全,因此应用在使用相机前必须得到用户的明确授权。
具体来说,对于相机权限的申请,您需要在应用的module.json5文件中设置相机权限,如下所示:
  1. "permissions": [ "ohos.permission.CAMERA" ]
复制代码
这行设置表现您的应用哀求使用相机的权限。在应用运行时,您还需要通过代码哀求用户授权,可以使用以下代码片段:
  1. import { requestPermissionsFromUser } from '@ohos.ability';
  2. const permissions = ['ohos.permission.CAMERA'];
  3. const result = await requestPermissionsFromUser(permissions);
  4. if (result['ohos.permission.CAMERA'] === 'authorized') {
  5.     console.log('Camera permission authorized');
  6. } else {
  7.     console.log('Camera permission denied');
  8. }
复制代码
这段代码会弹出一个授权对话框,让用户决定是否授予应用相机权限。只有当用户同意后,应用才能使用相机举行扫码或拍照。
因此,无论是举行二维码扫描还是拍照,您的应用都需要先确保已经得到了相机权限。这是保障用户隐私和应勤奋能正常运行的紧张步骤。
不需要
体系通过提供体系Picker和安全控件两种方式,使得应用可以或许便捷地访问体系资源。这两种方法均依赖于体系的独立历程来实现,当应用拉起体系Picker或展示安全控件时,必须依赖用户的主动操作来获取资源或结果。这一流程避免了应用额外申请权限,同时,由于用户的积极到场,进一步加强了用户隐私和安全的保护。
体系Picker
体系Picker是拉起体系资源的一种方式,由于体系Picker已经获取了对应权限的预授权,开辟者使用体系Picker时,无需再次申请权限也可临时受限访问对应的资源。
使用体系Picker组件拉起体系应用的场景紧张有:联系人Picker(Contacts Picker),地图Picker,相机Picker(Camera Picker),扫码Picker,卡证辨认Picker,文档扫描Picker,文件Picker,音频Picker和照片Picker(PhotoViewPicker)等,具体可参考拉起体系应用。
安全控件
安全控件是体系提供的一组体系实现的ArkUI组件,应用集成这类组件就可以实现在用户点击后自动授权,而无需弹窗授权。它们可以作为一种“特殊的按钮”融入应用页面,实现用户点击即许可的设计思路。
目前体系提供三类安全控件:粘贴控件(PasteButton)、保存控件(SaveButton)、位置控件(LocationButton)。
使用场景示例
以下列举了三个优先使用体系Picker或者安全控件的场景:

华为一键登入认证需要怎么做?

华为一键登录认证紧张涉及以下几个步骤:
通过以上步骤,您的应用就可以实现华为账号的一键登录功能,提供给用户快速、便捷的登录体验。

华为一键登入前端能获取得手机号码吗?

在华为账号一键登录功能中,前端确实可以或许获取到用户的手机号码。这一功能是通过华为的Account Kit实现的,它允许开辟者在用户点击一键登录按钮后,获取用户绑定到华为账号的手机号码。
具体的实现方式如下:
    注意这里虽然获取到了手机号码,但是是匿名手机号码 例如 183******58
  

  

flutter怎么适配安卓和IOS?

Flutter 可以或许高效适配安卓(Android)与 iOS 平台,紧张得益于以下几个关键要素:



安卓的四大组件?


安卓的四大组件分别是 Activity(活动)、Service(服务)、Broadcast Receiver(广播吸取器)以及 Content Provider(内容提供者),它们各自发挥着关键作用,协同构建起功能丰富的安卓应用:



有相识Handler吗?Handler是什么?



在安卓开辟中,Handler是一个极为关键的类,用于实现线程间通讯,尤其是在处理惩罚主线程(UI 线程)与子线程交互时必不可少,紧张体现在以下几方面:



Handler、Message,Looper与MessageQueue 之间的关系?


Handler、Message、Looper 与 MessageQueue 在安卓开辟的线程间通讯机制里紧密协作,各自负担独特功能,共同构成一个高效的信息流转体系:


总结来说,Message承载具体数据进入MessageQueue排队等候,Looper驱动循环从队列中提取Message,再由Handler完成收发与处理惩罚,它们协同运作,保障安卓应用多线程间井井有条地通讯。

鸿蒙状态管理的装饰器?






@Observed装饰器和@ObjectLink装饰器使用场景?

@Observed 和 @ObjectLink 是 HarmonyOS 开辟中用于处理惩罚嵌套对象或数组的数据同步装饰器。它们紧张用于确保数据模子中的属性厘革可以或许反映到视图上,特殊是在 dealing with nested objects or arrays。
@Observed 装饰器 @Observed 用于修饰类,它允许观察类的属性厘革。这使得开辟者可以在类的属性被修改时得到关照,从而实行相应的操作,如更新UI。以下是使用 @Observed 的一个示例:
  1. @Observed
  2. class Person {
  3.     name: string;
  4.     age: number;
  5.     constructor(name: string, age: number) {
  6.         this.name = name;
  7.         this.age = age;
  8.     }
  9. }
复制代码
在这个例子中,Person 类的 name 和 age 属性将被观察。当这些属性发生厘革时,由于 Person 类被 @Observed 装饰,所以这些厘革会被自动同步到使用 Person 实例的组件中。
@ObjectLink 装饰器 @ObjectLink 用于在父组件和子组件之间建立双向数据绑定。它通常与 @Observed 团结使用,以便将 @Observed 装饰的类的实例传递给子组件,并确保任何对类实例的修改都能反映到父组件和子组件的UI中。以下是使用 @ObjectLink 的一个示例:
  1. @Component
  2. struct MyPerson {
  3.     @ObjectLink person: Person
  4.     build() {
  5.         Column() {
  6.             Text(`姓名: $${this.person.name}`)
  7.                 .fontSize(20)
  8.                 .fontWeight(FontWeight.Bold)
  9.             Text(`年龄: $${this.person.age}`)
  10.                 .fontSize(15)
  11.                 .fontWeight(FontWeight.Regular)
  12.         }
  13.     }
  14. }
复制代码
在这个例子中,MyPerson 组件通过 @ObjectLink 吸取一个 Person 实例。这样,任何对 Person 实例属性的修改都会导致UI的更新。
通过这种方式,@Observed 和 @ObjectLink 帮助开辟者管理和同步复杂的数据结构,简化代码

鸿蒙关系型数据库是哪个?使用场景是什么?

鸿蒙操作体系中的关系型数据库是指基于SQLite组件实现的数据库管理体系。这种数据库管理体系提供了一套完备的本地数据库管理机制,支持传统的增、删、改、查等操作,而且可以或许实行用户自界说的SQL语句,以应对更复杂的场景需求。
紧张功能和参数:

使用场景:
注意事项:



数据库增删改查的API?

鸿蒙操作体系为SQLite数据库的增删改查操作提供了以下API:
    relationalStore 的增删改查属性
  
  insertSync
  
  batchInsertSync
  
  updateSync
  
  deleteSync
  
  querySync
  
  

鸿蒙数据库支持事件吗?事件是用来解决什么问题的?

鸿蒙的数据库支持事件。
事件紧张用于解决数据库操作中的一系列复杂问题,确保数据的完备性、可靠性与同等性,具体如下:


navigation和router用过吗?哪个用的多一点?

Navigation和Router都是HarmonyOS中用于实现页面路由的机制,但它们在使用方式和提供的功能上有显着的差异。
Navigation作为一种新的路由解决方案,旨在提供更强盛和灵活的功能。它允许开辟者通过组件来构建页面,支持共享元素的转场,且没有路由数量限定。Navigation还支持嵌套在模态对话框中,提供更高的自界说性,如动效和属性设置。别的,Navigation在性能上也优于Router,因为它通过引用传递参数,支持动态加载组件。
Router则是一个较早的页面路由解决方案,虽然仍然使用广泛,但它的功能较为有限。Router支持通过URL地点举行页面跳转,但每个应用的页面栈容量限定为32个页面。Router也不支持一些高级功能,如共享元素动画和模态框中的路由嵌套。
根据这些信息,可以看出Navigation因为在功能性和性能上的优势,大概会被更多地用于新的HarmonyOS应用开辟中。然而,Router由于其简便性和与现有应用的兼容性,大概仍会在一些旧的应用或特定场景下使用。
总之,选择哪个工具取决于具体的应用需求和开辟者的偏好。建议在新的项目中优先考虑使用Navigation,以使用其更多的功能和更好的性能。

navigation常用的生命周期?

其生命周期大抵可分为三类,自界说组件生命周期、通用组件生命周期和自有生命周期。此中,aboutToAppear和aboutToDisappear是自界说组件的生命周期(NavDestination外层包罗的自界说组件),OnAppear和OnDisappear是组件的通用生命周期。剩下的六个生命周期为NavDestination独有。



想获取navigation谁人页面的栈,需要在哪个生命周期获取(用于页面跳转的哪个对象)?

在HarmonyOS开辟中,获取页面栈是通过NavPathStack对象实现的,这个对象是管理页面栈的核心。您可以通过以下方式获取页面栈的巨细:
  1. let size: number = this.pathStack.size();
复制代码
这里的pathStack是一个NavPathStack的实例,它包罗了所有页面的路径信息。您可以在需要举行页面跳转或在页面加载时获取这个信息,以便于管理页面的状态和跳转。
别的,您可以通过NavPathStack对象举行页面的push、pop和其他操作,这些操作都会影响到页面栈的状态。因此,建议在页面的aboutToAppear或build方法中获取页面栈的信息,这两个方法分别在页面即将显示和页面构建时被调用,是获取页面栈的理想时机。

navigation怎么带参数跳转,跳转页怎吸取参数?

在鸿蒙(HarmonyOS)开辟中,通过Navigation组件传递参数通常涉及到两个方面:设置跳转参数和在目标页面中吸取这些参数。以下是具体的实现步骤:
通过上述步骤,你可以在Navigation组件中有效地传递和吸取参数,从而实现更复杂的功能和页面交互。
获取参数的方法
这些方法允许你在导航过程中灵活地获取和管理页面参数,从而实现复杂的功能组合和页面间的数据交互。
通过这些方法,你可以轻松地在页面之间传递和吸取参数,这对于维护页面的状态和实现复杂的导航逻辑非常有效。

git场景题:假如我在一个分支上功能写了一半,现在我需要去另一个分支写其他功能,请问用哪个git命令可以解决这个问题

  1. git stash
复制代码
  1. git checkout new-branch
复制代码
  1. git checkout original-branch
复制代码

  1. git stash
  2. apply
复制代码
需要注意的是,git stash
apply 实行后,暂存的内容并不会从栈里删除。要是想删除这个已经应用的暂存项,可以额外实行 git stash
drop;要是想一步到位,在应用的同时删除暂存内容,就用 git stash
pop 命令。

http和https的区别,https为啥是安全的?

HTTP(超文本传输协议)和 HTTPS(超文本传输安全协议)紧张有以下几方面区别:


HTTPS 之所以安全,核心在于它的加密机制与身份认证体系:



https是怎么加密的?

非对称加密与证书验证

对称加密密钥协商

数据加密传输






免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4