1.问题描述:
在单框架HarmonyOS拿到的openid与双框架HMS Core拿到的openid是相同的吗?
解决方案:
相同的吗?
不相同。首先用户openid的生成规则是:由用户账号和应用ID加密生成的; 在这个基础上单框架和双框架的应用ID是一定不相同的, 所以单双的openid也不会相同。
推荐使用unionid,其生成规则是:由用户账号和应用开发者账号签名而成, 如果开发者账号下管理了多个应用,并且这些应用需要共享同一个华为账号的用户信息,可以使用UnionID作为用户标识。
2.问题描述:
鸿蒙App中不同用户的unionid跟openid是不同的吗?
解决方案:
unionId和openId两个参数在平台返回的是不一样的,每个华为账号都有单独的unionId和openId参数值。
1、UnionID是华为帐号用户在同一个帐号下产品的身份ID,同一个用户,同一个帐号下管理的不同应用,UnionID值相同。
2、OpenID是华为帐号用户在不同类型的产品的身份ID,同一个用户,不同应用,OpenID值不同。
3.问题描述:
调用AuthorizationWithHuaweiIDRequest时,因为规范不能把forceAuthorization设置为true,导致有时无法触发授权且回调1001502002 应用未授权。
解决方案:
在调用AuthorizationWithHuaweiIDRequest时,如果forceAuthorization参数不能设置为true,确实可能会导致授权页面不会自动弹出,从而需要用户手动进行授权。
对于这种情况,虽然不能强制用户进行授权,但可以通过以下方式优化用户体验和应用的行为:
1、明确告知用户 :在应用的适当位置,明确告知用户需要进行授权以使用某些功能,并指导用户如何进行授权。
2、检查授权状态 :在用户使用相关功能前,先检查应用的授权状态。如果未授权,可以提示用户并提供授权按钮,点击后直接跳转到授权页面。
3、处理未授权情况 :在用户尝试访问需要授权的功能时,如果检测到未授权,可以提供一个快速授权的方式,如使用AuthorizationWithHuaweiIDRequest将forceAuthorization设置为true,或者引导用户在应用设置中完成授权。
4.问题描述:
如何在通过华为账号登录的同时,弹窗向用户申请手机号弹窗,类似iOS的Apple账号登录?
解决方案:
华为一键登录可以获取手机号,华为账号登录不会再提供类似能力。
如果觉得UI要求严格,可以使用Deveco插件辅助开发,一键生成UI代码,直接使用,两分钟搞定UI开发,参考链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/account-phone-unionid-login-V5#section12250103482815