uni-app 离线打包app一键登录无效
uni-app 离线打包app一键登录无效
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win10 | HBuilderX |
产品分类:
uniapp/App
PC开发环境操作系统:
Windows
HBuilderX类型:
正式
HBuilderX版本号:
4.29
手机系统:
Android
手机系统版本号:
Android 11
手机厂商:
小米
手机机型:
MI 9
页面类型:
vue
vue版本:
vue2
打包方式:
离线
操作步骤:
- 离线打包安卓app,无法正常使用一键登录
预期结果:
- 移动,联通,电信正常使用一键手机号登录
实际结果:
- 预登录失败 {“errMsg”:“preLogin:fail provider notfind”,“errCode”:0,“code”:0}
bug描述:
- 离线打包时 使用 gysdk-3.0.6.0.aar扩展打包后,移动,电信手机号可以正常弹出手机一键登录窗口,并且能获取到手机号,联通手机号则无法调起 预登录,提示 preLogin:fail -10003 预登录失败 “errCode”:30005,"请求超时,更新最新的gysdk-3.1.9.0扩展包后,离线打包正常,但移动,联通等手机号均无法正常 预登录,提示 {“errMsg”:“preLogin:fail provider notfind”,“errCode”:0,“code”:0},对应离线配置也都按要求配置了,这个请问下是什么问题?
2 回复
这个问题已经解决了
针对uni-app离线打包APP时一键登录无效的问题,这通常涉及到多个方面的排查,包括SDK集成、权限配置、离线打包配置等。以下是一个简化的代码案例和配置示例,帮助你检查和修复这个问题。注意,具体实现可能需要根据你使用的第三方登录服务(如微信、支付宝、手机厂商的一键登录等)进行调整。
1. 确认SDK集成正确
确保你已经正确集成了相应的一键登录SDK。以下是一个假设的微信一键登录SDK集成示例:
// 在main.js中引入微信SDK
import wxLogin from '@/libs/wx-login-sdk.js';
// 初始化SDK,这里假设SDK需要appid和secret等配置
wxLogin.init({
appId: 'YOUR_APP_ID',
secret: 'YOUR_APP_SECRET'
});
// 在需要登录的地方调用登录方法
wxLogin.login().then(res => {
console.log('登录成功', res);
// 保存登录状态或token
}).catch(err => {
console.error('登录失败', err);
});
2. 检查AndroidManifest.xml和Info.plist配置
确保在Android的AndroidManifest.xml
和iOS的Info.plist
中配置了必要的权限和URL Scheme。以下是一个Android配置示例:
<!-- 在AndroidManifest.xml中添加权限和intent-filter -->
<uses-permission android:name="android.permission.INTERNET" />
<application>
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- 添加微信登录回调 -->
<intent-filter>
<data android:scheme="wxyourappid" android:host="sdklauncher" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
3. 检查离线打包配置
确保在uni-app的manifest.json
中正确配置了打包选项,特别是关于原生插件和权限的部分。
{
"mp-weixin": {},
"app-plus": {
"distribute": {
// 其他打包配置...
},
"sdkConfigs": {
"wxLogin": { // 假设这是你的SDK配置键
"appId": "YOUR_APP_ID",
"enable": true
}
}
}
}
结论
由于一键登录通常涉及第三方服务,具体的实现和配置可能会因服务提供商的不同而有所差异。上述代码和配置示例提供了一个基本的框架,但具体实现需要根据你使用的服务进行调整。如果问题依旧存在,建议查阅该服务的官方文档或联系技术支持获取帮助。