uni-app 离线打包app一键登录无效

发布于 1周前 作者 wuwangju 来自 Uni-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
            }
        }
    }
}

结论

由于一键登录通常涉及第三方服务,具体的实现和配置可能会因服务提供商的不同而有所差异。上述代码和配置示例提供了一个基本的框架,但具体实现需要根据你使用的服务进行调整。如果问题依旧存在,建议查阅该服务的官方文档或联系技术支持获取帮助。

回到顶部