Coder Social home page Coder Social logo

fluttercandies / flutter_ali_auth Goto Github PK

View Code? Open in Web Editor NEW
42.0 3.0 15.0 28.81 MB

Flutter Ali Auth Plugin 阿里云一键登录Flutter插件

Home Page: https://pub.flutter-io.cn/packages/flutter_ali_auth

License: MIT License

Java 37.00% Ruby 0.96% Swift 27.43% Objective-C 17.26% Dart 17.35%

flutter_ali_auth's Introduction

flutter_ali_auth

Language: 中文

基于阿里云一键登录的 Flutter集成的SDK插件

阿里云一键登录安卓接入文档: Android_v2.12-1.15

阿里云一键登录IOS接入文档: iOS_v2.12-1.15

更新历史 🌄

  • 现已更新到与官方同步的SDK v2.12-1.15 版本;
  • 授权页适配夜间/暗色模式(仅全屏,弹窗模式需自定以);

目录

效果图 📷

IOS

全屏 底部弹窗 中间弹窗

Android

全屏 底部弹窗 中间弹窗

插件须知 ⚠️

关于权限

  1. 安卓权限,本插件已经添加必要的权限支持:
<uses-permission android:name="android.permission.INTERNET" /> <!-- 网络访问 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 检查wifi网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 检查网络状态 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 切换网络通道 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- 本地信息缓存 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 开关Wi-Fi状态,解决**内地机型移动网络权限问题需要 -->

需要加上自行根据实际情况,设置HTTP白名单

 <network-security-config>
  <domain-config cleartextTrafficPermitted="true" >
    <domain includeSubdomains="true">enrichgw.10010.com</domain> <!-- 联通内部5G请求域名,开发者需要添加 -->
    <domain includeSubdomains="true">onekey.cmpassport.com</domain>  <!-- 移动内部请求域名,开发者需要添加 -->
  </domain-config>
</network-security-config>

目前**移动提供的个别接口为HTTP请求,对于全局禁用HTTP的项目,需要设置HTTP白名单。以下为运营商HTTP接口域名:onekey.cmpassport.com,enrichgw.10010.com, 详情可参见官方文档

2.苹果开发

  • 插件已经集成主库ATAuthSDK.framework,不需要添加-ObjC

  • 开发工具建议使用Xcode 11及以上。

  • 支持iOS 10及以上系统。

  • 如果集成本插件之后遇到File not found: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a 的问题,问题可能是 本插件依赖MBProgressHUD,而MBProgressHUD的deployment target过低,你只需要将其改到12以上即可。

最后,有用请🌟~

准备工作 🔧

请登录阿里云控制台号码认证服务 分别添IOS和Android的认证方案,从而获取到SDK的秘钥。 注意:Ios只需要输入绑定Bundle name即可,Android则需要包名和和签名。如何获取App的签名

先了解原生SDK代码调用顺序 🔗

/*
* 1.初始化获取Token实例
*/
TokenResultListener mTokenListener = new TokenResultListener();

/*
* 2.初始化SDK实例
*/
mAlicomAuthHelper = PhoneNumberAuthHelper.getInstance(context, mTokenListener);

/*
* 3.设置SDK密钥
*/
mAlicomAuthHelper.setAuthSDKInfo();

/*
* 4.检测终端⽹络环境是否⽀持⼀键登录或者号码认证,根据回调结果确定是否可以使⽤⼀键登录功能
*/
mAlicomAuthHelper.checkEnvAvailable(PhoneNumberAuthHelper#SERVICE_TYPE_LOGIN);

/*
* 5.若步骤4返回true,则根据业务情况,调⽤预取号或者⼀键登录接⼝
*   详⻅Demo接⼊⼯程
*/
mAlicomAuthHelper.getLoginToken(context, 5000);

插件使用 ☄️

1. 添加监听

/// 传入回调函数 onEvent
AliAuthClient.handleEvent(onEvent: _onEvent);
/// 移除回调事件
AliAuthClient.removeHandler();

onEvent中监听回调并且自行进行判断

void _onEvent(AuthResponseModel event) async {
  //print(event);
}

回调实例AuthResponseModel 在原生中已经对事件响应码进行了包装,消息成员如下

参数名 类型 描述
resultCode String SDK返回码,600000表示操作成功(初始化/检查环境/预取号/登录成功),详情参考官网的SDK返回码
requestId String SDK请求ID,如出现无法解决问题时候可以根据Id创建工单咨询
msg String SDK返回码描述,详情参考官网的SDK返回码
token String 授权页面点击登录按钮成功 认证后resultCode为60000时,会返回认证的Token,此时SDK提供的服务到此结束,可以拿Token到服务端进行自行判断登录认证
innerCode String 如果初始化认证SDK出现问题,回调信息一般会携带运行商的错误代码和错误信息,详情参考运营商SDK错误码
innerMsg String 运行商认证时候出现的错误信息

2.初始化SDK (initSdk)

/// 初始化前需要须对插件进行监听
await AliAuthClient.initSdk(
authConfig: const AuthConfig(),
);

需要通过 AuthConfig 来配置安卓和IOS端的秘钥,以及UI的配置 AuthUIConfig,成员如下

参数名 类型 描述
iosSdk String IOS秘钥
androidSdk String Android秘钥
enableLog bool 是否打印日志
authUIStyle Enum fullScreen(全屏) bottomSheet(底部弹窗) alert(中间弹窗) 目前暂时配置了三种常用竖屏的形式,更多形式参考官方文档 后续将陆续支持
authUIConfig AuthUIConfig UI配置类

AuthUIConfig为UI的配置类型,分为全屏UI配置 FullScreenUIConfig 和弹窗UI配置 AlertUIConfig

FullScreenUIConfig 成员如下

参数名 类型 描述
navConfig NavConfig 导航栏UI配置
backgroundColor String 十六进制背景颜色,eg: "#ffffff"
backgroundImage String 本地的背景图片,eg: "/assets/image/background.png"
prefersStatusBarHidden Boolean 状态栏是否隐藏,默认显示
logoConfig LogoConfig LogoUI配置类
sloganConfig SloganConfig SloganConfig配置类
phoneNumberConfig PhoneNumberConfig PhoneNumberConfig配置类
loginButtonConfig LoginButtonConfig LoginButtonConfig配置类
changeButtonConfig ChangeButtonConfig ChangeButtonConfig配置类
checkBoxConfig CheckBoxConfig CheckBoxConfig配置类
privacyConfig PrivacyConfig PrivacyConfig配置,自定义协议(目前只支持三个)

AlertUIConfig 成员如下

参数名 类型 描述
alertTitleBarConfig AlertTitleBarConfig 弹窗ActionBar的UI配置
alertContentViewColor String 十六进制背景颜色,eg: "#ffffff"
alertBlurViewColor String 弹窗蒙层的颜色
alertBlurViewAlpha double 弹窗蒙层的透明度
alertBorderRadius double 弹窗圆角
alertBorderWidth double 边框宽度,仅Android生效
alertBorderColor String 边框颜色,仅Android生效
alertWindowWidth double 弹窗宽度
alertWindowHeight double 弹窗高度
logoConfig LogoConfig LogoUI配置类
sloganConfig SloganConfig SloganConfig配置类
phoneNumberConfig PhoneNumberConfig PhoneNumberConfig配置类
loginButtonConfig LoginButtonConfig LoginButtonConfig配置类
changeButtonConfig ChangeButtonConfig ChangeButtonConfig配置类
checkBoxConfig CheckBoxConfig CheckBoxConfig配置类,弹窗默认隐藏checkbox
privacyConfig PrivacyConfig PrivacyConfig配置,自定义协议(目前只支持三个)

3.一键登录获取Token (login)

调用该接口首先会弹起授权页,点击授权页的登录按钮获取Token,可选参数为Timeout,默认5s

调用此接口后会通过之前注册的监听中回调信息

/// 一键登陆 需要用try-catch[PlatformException]捕获插件返回的异常
/// 无返回内容,调用之后,会在[handleEvent][onEvent]返回回调
await AliAuthClient.login({double timeout = 5.0})

4.其他方法

下面的方法与官网接入文档一致,可以根据个人开发情况进行使用

/// 关闭授权页loading
await AliAuthClient.hideLoginLoading();

/// 退出授权认证页
await AliAuthClient.quitLoginPage();

5.如有帮助到你,请我喝咖啡

我相信本项目的代码一定能在商业项目上帮助到您,如果您从本项目中获益,不妨请作者我喝杯咖啡, 您的捐助使我更有动力创作~

微信 支付宝
wechat donate alipay donate

flutter_ali_auth's People

Contributors

alexv525 avatar jifang avatar maninthewind avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flutter_ali_auth's Issues

[Bug report] ios端pod install 报错

Version

每个版本都不行

Platforms

iOS

Device Model

iphone12

flutter info

flutter 3.0.2
dart 2.17.3
pod是刚更新的

How to reproduce?

加入了这个包之后pod install每次都会报错,注释掉就可以正常启动

Logs

### Error


LoadError - dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi_c.bundle, 0x0009): tried: '/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi_c.bundle' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))) - /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi_c.bundle
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi.rb:5:in `rescue in <top (required)>'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ethon-0.12.0/lib/ethon.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/typhoeus-1.3.1/lib/typhoeus.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/cdn_source.rb:440:in `download_typhoeus_impl_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/cdn_source.rb:372:in `download_and_save_with_retries_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/cdn_source.rb:365:in `download_file_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/cdn_source.rb:338:in `download_file'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/cdn_source.rb:284:in `ensure_versions_file_loaded'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/cdn_source.rb:208:in `search'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/source/aggregate.rb:83:in `block in search'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/source/aggregate.rb:83:in `select'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/source/aggregate.rb:83:in `search'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:416:in `create_set_from_sources'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:385:in `find_cached_set'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:360:in `specifications_for_dependency'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:165:in `search_for'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:274:in `block in sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:267:in `each'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:267:in `sort_by'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:267:in `sort_by!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:267:in `sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:60:in `block in sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:77:in `with_no_such_dependency_error_handling'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:59:in `sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:754:in `push_state_for_requirements'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:744:in `require_nested_dependencies_for'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:727:in `activate_new_spec'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:684:in `attempt_to_activate'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:254:in `process_topmost_state'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:182:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolver.rb:43:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/resolver.rb:94:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/installer/analyzer.rb:1082:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/installer/analyzer.rb:1080:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/installer/analyzer.rb:125:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/installer.rb:422:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/installer.rb:244:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/installer.rb:243:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/installer.rb:162:in `install!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/command/install.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.12.1/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'

――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

[!] Oh no, an error occurred.

Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=dlopen%28%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.5%2Flib%2Fffi_c.bundle%2C+0x0009%29%3A+tried%3A+%27%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.5%2Flib%2Fffi_c.bundle%27+%28mach-o+file%2C+but+is+an+incompatible+architecture+%28have+%28x86_64%29%2C+need+%28arm64e%29%29%29+-+%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.5%2Flib%2Fffi_c.bundle&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

Don't forget to anonymize any private data!

Looking for related issues on cocoapods/cocoapods...
Searching for inspections failed: undefined method `map' for nil:NilClass



### Example code (optional)

_No response_

### Contact

[email protected]

切换网络后,不在有onEvent回调

Version

flutter_ali_auth: ^0.6.2

Platforms

Android

Device Model

galaxy S22+ android 13

flutter info

[✓] Flutter (Channel stable, 3.10.3, on macOS 13.0 22A380 darwin-arm64, locale zh-Hans-CN)
    • Flutter version 3.10.3 on channel stable at /Users/qqss/Documents/qqss/flutter_sdk/flutter_3.10.3
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f92f44110e (5 周前), 2023-06-01 18:17:33 -0500
    • Engine revision 2a3401c9bb
    • Dart version 3.0.3
    • DevTools version 2.23.1
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/qqss/Documents/qqss/android_sdk/android-sdk-macosx
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = /Users/qqss/Documents/qqss/android_sdk/android-sdk-macosx
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.79.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

How to reproduce?

在有WiFi和信号网络情况下,添加监听,初始化插件, 回调正常,关闭页面,移除监听,
关闭信号网络,
再次添加监听 初始化插件,没有任何回调了,关闭页面,移除监听
打开信号网络
再次添加监听 初始化插件,依然没有回调

Logs

没有错误日志

Example code (optional)

No response

Contact

[email protected]

[Bug report] 登录回调问题

Version

0.6.2

Platforms

Android

Device Model

HUAWEI P40 PRO 鸿蒙 3.0 **移动

flutter info

[✓] Flutter (Channel stable, 3.3.5, on macOS 13.3.1 22E261 darwin-arm, locale zh-Hans-CN)
    • Flutter version 3.3.5 on channel stable at /Users/yuhao/software/flutter/flutter_3.3.5
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d9111f6402 (8 months ago), 2022-10-19 12:27:13 -0700
    • Engine revision 3ad69d7be3
    • Dart version 2.18.2
    • DevTools version 2.15.0
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/yuhao/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 73.1.1
    • Dart plugin version 231.9065

[✓] Connected device (4 available)
    • ELS AN00 (mobile) • UQG0220807002237          • android-arm64  • Android 12 (API 31)
    • later (mobile)    • 00008101-00120C110E9A001E • ios            • iOS 16.3 20D47
    • macOS (desktop)   • macos                     • darwin-arm64   • macOS 13.3.1 22E261 darwin-arm
    • Chrome (web)      • chrome                    • web-javascript • Google Chrome 113.0.5672.126

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

How to reproduce?

1,关闭移动数据网络
2,重新打开 app,一键登录插件初始化,此时 AliAuthClient.handleEvent(onEvent: authEvent) 正常回调
3,调用 AliAuthClient.login(); 此时进入 catch 方法
4,打开移动数据网络
5,调用 AliAuthClient.login(); 依旧进入 catch 方法,没有正常回调

***:IOS 在此步骤下可以正常回调,只是在弹出登录框时很慢
***:Android 第一步打开移动数据网络的情况下无此问题,不论期间开启/关闭移动数据都能正常回调

Logs

1,2步 log 正常,之后的步骤因为进入 catch 无日志

Example code (optional)

初始化:

await initAuth();
AliAuthClient.handleEvent(onEvent: authEvent);

回调方法:
authEvent(AuthResponseModel responseModel) async {
      if (responseModel.resultCode == '600000' && responseModel.token != null) {
        .......
        } else {
          CommonWidgetsBuilder.showToast('当前环境不支持一键登录,请使用其它方式登录');
        }
      } else if (responseModel.resultCode == '600008' && agreeProtocol.value) {
        CommonWidgetsBuilder.showToast(responseModel.msg ?? '请打开移动数据后重试');
      }
    }

登录按钮:
CustomCupertinoButton(
            width: 250.w,
            onPressed: () async {
              if (!agreeProtocol.value) {
                return CommonWidgetsBuilder.showToast('请同意相关协议');
              }
              try {
                await AliAuthClient.login();
              } catch (e) {
                // PlatformException(600025, 初始化失败或未初始化, null, null)
                CommonWidgetsBuilder.showToast('当前环境不支持一键登录,请开启移动网络或使用其它方式登录');
              }
            },
            text: '本机号码一键登录',
          ),

Contact

[email protected]

一键登录AppID Secret解析失败,错误码600017

Version

0.7.0

Platforms

Android

Device Model

红米K50(Android 13)

flutter info

[√] Flutter (Channel stable, 3.3.0, on Microsoft Windows [版本 10.0.22000.120], locale zh-CN)
    • Flutter version 3.3.0 on channel stable at D:\flutterSDK\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ffccd96b62 (1 year, 4 months ago), 2022-08-29 17:28:57 -0700
    • Engine revision 5e9e0e0aa8
    • Dart version 2.18.0
    • DevTools version 2.15.0

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at D:\SDK
    • Platform android-34, build-tools 33.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2021.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[√] VS Code (version 1.85.1)
    • VS Code at C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.80.0

[√] Connected device (3 available)
    • 22041211AC (mobile) • DM6TAYOFFEBUGU5X • android-arm64  • Android 13 (API 33)
    • Windows (desktop)   • windows          • windows-x64    • Microsoft Windows [版本 10.0.22000.120]
    • Chrome (web)        • chrome           • web-javascript • Google Chrome 120.0.6099.216

How to reproduce?

必现,Android和ios码都填写确认了,Android也取消了混淆

Logs

E/AuthSDK ( 5269): 	at com.fluttercandies.flutter_ali_auth.FlutterAliAuthPlugin.onMethodCall(FlutterAliAuthPlugin.java:64)
E/AuthSDK ( 5269): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
E/AuthSDK ( 5269): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/AuthSDK ( 5269): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
E/AuthSDK ( 5269): 	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/AuthSDK ( 5269): 	at android.os.Handler.handleCallback(Handler.java:942)
E/AuthSDK ( 5269): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/AuthSDK ( 5269): 	at android.os.Looper.loopOnce(Looper.java:210)
E/AuthSDK ( 5269): 	at android.os.Looper.loop(Looper.java:299)
E/AuthSDK ( 5269): 	at android.app.ActivityThread.main(ActivityThread.java:8136)
E/AuthSDK ( 5269): 	at java.lang.reflect.Method.invoke(Native Method)
E/AuthSDK ( 5269): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
E/AuthSDK ( 5269): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)


checkEnvAvailable errorCode = 600017; errorMsg = AppID Secret解析失败
D/AuthClient( 5269): initSdk onTokenFailed: {"carrierFailedResultData":"","code":"600017","msg":"AppID Secret解析失败","requestCode":0,"requestId":"931165e6-8551-4aa4-aad1-e2dda0ad2ef1","vendorName":"cm_zyhl"}

Example code (optional)

No response

Contact

[email protected]

Android 唤起授权页失败时,导致DecoyMaskActivity一直遮盖不消失

Version

all

Platforms

Android

Device Model

android

flutter info

--

How to reproduce?

flutter 出现拉起失败时,回调错误码600002

AuthClitent.getLoginToken() //方法中低255行
   || ResultCode.MSG_ERROR_START_AUTHPAGE_FAIL.equals(tokenRet.getCode())) { // 判断错误,应该用CODE_ERROR_START_AUTHPAGE_FAIL

Logs

No response

Example code (optional)

No response

Contact

No response

PrivacyConfig中privacyUrl填写本地和网络地址均无效

Version

0.6.2

Platforms

iOS

Device Model

ip12

flutter info

privacyConfig: PrivacyConfig(
        privacyFontColor: '#EB2500',
        privacyOneName: '《隐私协议》',
        privacyOneUrl: 'assets/html/privacy-agreement.html',
      ),

How to reproduce?

privacyConfig: PrivacyConfig(
privacyFontColor: '#EB2500',
privacyOneName: '《隐私协议》',
privacyOneUrl: 'assets/html/privacy-agreement.html',
),

Logs

No response

Example code (optional)

No response

Contact

[email protected]

怎样配置点击其他登录方式前提醒先同意用户协议(在不关闭一键登录页的前提下)

Platforms

Android

Description

全屏模式,点击其他登录方式前,先提醒同意用户协议.

My code

Future<void> _aliSmsOnEvent(AuthResponseModel responseModel) async {
    final AuthResultCode resultCode = AuthResultCode.fromCode(
      responseModel.resultCode!,
    );
    switch (resultCode) {
      case AuthResultCode.success:
        if (responseModel.token != null && responseModel.token!.isNotEmpty) {
          String aliAuthToken = responseModel.token ?? '';
          if (aliAuthToken != '') {
            _loginViaPhone(aliAuthToken);
          } else {
            showToast(context: context, message: '登录出错');
          }
        }
        break;
      case AuthResultCode.envCheckSuccess:
        setState(() {
          _isSupportAliSimLogin = true;
        });
        break;
      case AuthResultCode.onCustomViewTap:
        print(responseModel.msg);
        if (_hasCheckAgreement == false) {
          showToast(context: context, message: '先同意用户协议');
          return;
        }
        switch (responseModel.msg) {
          case '2':
            _loginViaWechat();
            break;
          case '3':
            _loginViaApple();
            break;
          case '4':
            _loginViaSmsCode();
            break;
        }
        break;
      case AuthResultCode.loginControllerClickCheckBoxBtn:
        _hasCheckAgreement = !_hasCheckAgreement;
        break;
      default:
        print('ali sim auth event:');
        print(responseModel.innerCode);
        print(responseModel.toString());
        break;
    }
  }

  bool _hasCheckAgreement = false;

Try do it

目前在onCustomViewTap判断_hasCheckAgreement是否同意的但全屏登录页还是会被自动关闭

拉起一键登录页面时间过长

Version

0.6.2

Platforms

Android, iOS

Device Model

all device

flutter info

Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel unknown, 3.3.9, on macOS 12.6.3 21G419 darwin-x64, locale zh-Hans-CN)
    ! Flutter version 3.3.9 on channel unknown at /Users/develop/Library/Application
      Support/fvm/versions/3.3.9
    ! Upstream repository unknown
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.5)
[✓] IntelliJ IDEA Ultimate Edition (version 2022.3.3)
[✓] Connected device (3 available)
    ! Error: (null) needs to connect to determine its availability. Check the connection between the device
      and its companion iPhone, and the connection between the iPhone and Xcode. Both devices may also need
      to be restarted and unlocked. (code 1)

How to reproduce?

AliAuthClient.login();登录时经过大概三四秒甚至更久才回出现一键登录页面

Logs

No response

Example code (optional)

No response

Contact

No response

demo bug 弹窗层级太高 导致提示无法正常显示

SmartDialog.showToast 全都无法正   常显示

case AuthResultCode.interfaceDemoted:
case AuthResultCode.interfaceLimited:
case AuthResultCode.featureInvalid:
case AuthResultCode.outOfService:
SmartDialog.showToast('暂时无法一键登录,请使用其他登录方式');
break;
case AuthResultCode.failed:
case AuthResultCode.errorNetwork:
case AuthResultCode.errorClientTimestamp:
case AuthResultCode.statusBusy:
SmartDialog.showToast('请求遇到问题,请稍后重试');
break;
case AuthResultCode.decodeAppInfoFailed:
SmartDialog.showToast(responseModel.msg ?? 'SDK密钥错误');
break;
case AuthResultCode.onCustomViewTap:
SmartDialog.showToast("点击自定义控件:${responseModel.msg}");
break;

Android Release 600017[Bug report]

Version

0.7.0

Platforms

Android

Device Model

xiao mi (Android 12)

flutter info

[✓] Flutter (Channel stable, 3.13.4, on macOS 13.5 22G74 darwin-arm64, locale zh-Hans-CN)
    • Flutter version 3.13.4 on channel stable at /Users/wuning/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 367f9ea16b (7 days ago), 2023-09-12 23:27:53 -0500
    • Engine revision 9064459a8b
    • Dart version 3.1.2
    • DevTools version 2.25.0

[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/wuning/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.82.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.72.0

[✓] Connected device (4 available)
    • iPhone测试 (mobile)          • 5225363e0ccb1ba45c093a4c51aa6f04ca9716e0 • ios            • iOS 16.3.1 20D67
    • iPhone 14 Pro Max (mobile) • 7AD633DA-085A-4B2B-A6D8-E8B0D53241B8     • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4
      (simulator)
    • macOS (desktop)            • macos                                    • darwin-arm64   • macOS 13.5 22G74 darwin-arm64
    • Chrome (web)               • chrome                                   • web-javascript • Google Chrome 116.0.5845.187

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

How to reproduce?

In the Android version, the signatures of debug and release are consistent. When using the one-click login function, it can be used normally on debug. When using the release package, error 600017 will be reported. After some troubleshooting, I found that the parameters of initSDK are the same and the error message is ‘SDK null’

Logs

No response

Example code (optional)

No response

Contact

[email protected]

一键登录全屏状态下,隐私协议的中"天翼账号认证服务条款",该文案无法被替换

Version

0.6.2

Platforms

Android, iOS

Device Model

iPhone 6s plus

flutter info

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.6, on macOS 12.6.7 21G651 darwin-x64, locale
    zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.80.1)
[✓] Connected device (5 available)
[✓] Network resources             

• No issues found!

How to reproduce?

在全屏UI配置中设置PrivacyConfig

Logs

No response

Example code (optional)

FullScreenUIConfig(
privacyConfig: PrivacyConfig(
        privacyFrameOffsetY: changeBtnFrameOffsetY + 120,
        privacyOneName: "《用户协议》",
        privacyPreText: "我已阅读并同意",
        privacyTwoName: "《隐私协议》",
        privacyThreeName: "你好"
      ),

    );

Contact

No response

[Bug report] debug包登录正常,release包一直初始化失败,提示600017初始化失败,sdk为空,但是sdk是有的

Version

0.6.0

Platforms

Android, iOS

Device Model

红米K40 Android13

flutter info

• Flutter version 3.7.3 on channel stable at /Users/aaa/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9944297138 (4 weeks ago), 2023-02-08 15:46:04 -0800
    • Engine revision 248290d6d5
    • Dart version 2.19.2
    • DevTools version 2.20.1
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

How to reproduce?

运行debug包时一切正常,运行release包一直初始化失败,Android和ios的sdk都配置了的

Logs

错误码:600017,初始化失败,sdk为空

Example code (optional)

No response

Contact

No response

{"resultCode":"600004","msg":"当前网络构建配置信息失败 carrier name = --","requestId":"3cff6d00f3904376","innerMsg":"","innerCode":""}

Version

flutter_ali_auth: ^0.6.2

Platforms

iOS

Device Model

12 pro max

flutter info

Flutter (Channel stable, 3.10.5, on macOS 13.0 22A380 darwin-arm64, locale
    zh-Hans-CN)
    • Flutter version 3.10.5 on channel stable at
      /Users/qqss/Documents/qqss/flutter_sdk/flutter_3.10.5
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 796c8ef792 (6 周前), 2023-06-13 15:51:02 -0700
    • Engine revision 45f6e00911
    • Dart version 3.0.5
    • DevTools version 2.23.1
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/qqss/Documents/qqss/android_sdk/android-sdk-macosx
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = /Users/qqss/Documents/qqss/android_sdk/android-sdk-macosx
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.80.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

How to reproduce?

偶发,目前测试机这台有问题,给的也是 WLAN与蜂窝网络

Logs

No response

Example code (optional)

No response

Contact

[email protected]

APP一开始运行没有开流量的情况后,再开启流量无法调用起页面,报错

Version

0.7.0

Platforms

Android

Device Model

Xiao Mi mix3 (Android 10)

flutter info

Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
[√] Flutter (Channel stable, 3.13.9, on Microsoft Windows [版本 10.0.19045.3693], locale zh-CN)
    • Flutter version 3.13.9 on channel stable at D:\Protable\flutterSDK\3.13.9
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d211f42860 (7 weeks ago), 2023-10-25 13:42:25 -0700
    • Engine revision 0545f8705d
    • Dart version 3.1.5
    • DevTools version 2.25.0
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at D:\Protable\Android\Sdk
    • Platform android-33, build-tools 33.0.0
    • ANDROID_HOME = D:\Protable\Android\Sdk
    • ANDROID_SDK_ROOT = D:\Protable\Android\Sdk
    • Java binary at: D:\Program Files (x86)\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[!] Visual Studio - develop Windows apps (Visual Studio Enterprise 2022 17.5.5)
    • Visual Studio at D:\Program Files\Microsoft Visual Studio\2022\Enterprise
    • Visual Studio Enterprise 2022 version 17.5.33627.172
    • Windows 10 SDK version 10.0.17763.0
    X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these components:      
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK

[√] Android Studio (version 2021.2)
    • Android Studio at D:\Program Files (x86)\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[√] Connected device (4 available)
    • MIX 3 (mobile)    • d5e5f0d9 • android-arm64  • Android 10 (API 29)
    • Windows (desktop) • windows  • windows-x64    • Microsoft Windows [版本 10.0.19045.3693]
    • Chrome (web)      • chrome   • web-javascript • Google Chrome 115.0.5790.98
    • Edge (web)        • edge     • web-javascript • Microsoft Edge 120.0.2210.61

[√] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

How to reproduce?

APP一开始运行没有开流量的情况开了WiFi,点击一键登录提示没有开流量,开启流量后报错。
如果APP一开始运行开了流量,无论怎么切换流量按钮,插件正常。
报错位置是下面这个一键登录触发事件,try catch.
好像是参数没有更新导致的

  @override
  void onInit() async {
    prefs = Get.find<SharedPreferences>();
    // language = prefs.getString(StorageConstants.lang);
    // PackageInfo packageInfo = await PackageInfo.fromPlatform();
    // logD(packageInfo.packageName);
    try {
      AliAuthClient.removeHandler();
      AliAuthClient.handleEvent(onEvent: _onEvent);
      bool? initSuccess = await AliAuthClient.initSdk(
        authConfig: authConfig,
      );
      logE("初始化:$initSuccess");
      if (!(initSuccess ?? false)) {
        logE("初始化SDK失败");
      }
    } on PlatformException catch (e) {
      final AuthResultCode resultCode = AuthResultCode.fromCode(
        e.code,
      );
      WsWidget.wsToast(resultCode.message);
      logE("初始化SDK出现错误1:$e");
    }
    super.onInit();
  }
  onClickLogin() async {
    AliAuthClient.quitLoginPage();
    try {
      await AliAuthClient.login(timeout: 5);
    } on PlatformException catch (e) {
      final AuthResultCode resultCode = AuthResultCode.fromCode(
        e.code,
      );
      WsWidget.wsToast(resultCode.message);
      logE("初始化SDK出现错误2:$e");
    }
  }

resultCode.message 为 终端环境检测失败(1.终端不支持认证,2终端检测参数错误,3.初始化未成功)

Logs

I/flutter (12905): │ ⛔ 初始化:true
I/flutter (12905): │ ⛔ 初始化SDK出现错误2:PlatformException(600025, 初始化失败或未初始化, null, null)
D/AuthSDK (12905): CacheMonitor:{"u":{"endTime":"2023年12月11日 16:20:56.471","isSuccess":"true","startTime":"2023年12月11日 16:20:56.470","suspendDisMissVC":false,"wholeMS":"1"},"s":"","c":{"traceId":"0ffab91b-ac83-4ebe-bd60-b334ae155973","appVersion":"1.0.0","um_aaid":"6a8d6a3c9706b69e68d46dcfd9610b03","signature":"5ca1b859cdd317188dc99ea92401c7ce","utdid":"4e3ed2d06ab9ca45b57a3d7040994fc0","archiveName":"logOnlineStandardCuxw","carrierSdkVersion":"","deviceName":"MIX 3","vendorKey":"","osVersion":"10","createTime":1702282856472,"monitorVersion":"2.1","sdkVersion":"2.12.15","packageName":"com.yongjiang.airobot","networkType":null,"deviceBrand":"Xiaomi","uniqueId":"2d6696adb6015e62a39117466e110e57"},"action":"sdk.quit.auth","apiLevel":"1","osType":"Android"}

Example code (optional)

No response

Contact

No response

页面非法修改

Version

flutter_ali_auth: ^0.6.2

Platforms

dart, Android, iOS

Device Model

galaxy S22+ android 13

flutter info

Flutter (Channel stable, 3.10.3, on macOS 13.0 22A380 darwin-arm64, locale
    zh-Hans-CN)
    • Flutter version 3.10.3 on channel stable at
      /Users/qqss/Documents/qqss/flutter_sdk/flutter_3.10.3
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f92f44110e (4 周前), 2023-06-01 18:17:33 -0500
    • Engine revision 2a3401c9bb
    • Dart version 3.0.3
    • DevTools version 2.23.1
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/qqss/Documents/qqss/android_sdk/android-sdk-macosx
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = /Users/qqss/Documents/qqss/android_sdk/android-sdk-macosx
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.79.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (4 available)
    • SM S9060 (mobile)      • 192.168.2.5:5555                     •
      android-arm64  • Android 13 (API 33)
    • iPhone 14 Pro (mobile) • 30A42D2B-6F4E-4B4B-B8B0-B189B19403D4 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)        • macos                                •
      darwin-arm64   • macOS 13.0 22A380 darwin-arm64
    • Chrome (web)           • chrome                               •
      web-javascript • Google Chrome 114.0.5735.198

[✓] Network resources
    • All expected network resources are available.

• No issues found!

How to reproduce?

点击一键登录按钮

Logs

E/AuthSDK ( 8870): LoginAuthActivity errorCode = 600005; errorMsg = 页面非法修改

Example code (optional)

No response

Contact

No response

release版本图片不显示

Version

0.7.0

Platforms

dart, Android

Device Model

荣耀 Magic5

flutter info

Flutter (Channel stable, 3.16.0, on macOS 13.5.2 22G91 darwin-x64, locale zh-Hans-CN)
    • Flutter version 3.16.0 on channel stable at /Users/zhangmoran/Flutter/flutter3.16.0
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db7ef5bf9f (5 weeks ago), 2023-11-15 11:25:44 -0800
    • Engine revision 74d16627b9
    • Dart version 3.2.0
    • DevTools version 2.28.2
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/zhangmoran/Library/Android/sdk
    • Platform android-34, build-tools 31.0.0
    • ANDROID_HOME = /Users/zhangmoran/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.78.0

[✓] Connected device (5 available)
    • PGCM10 (mobile)            • PJPB8LEAFEGIVWEM                     • android-arm64  • Android 13 (API 33)
    • Mr.Zhang (mobile)          • 00008120-001210A12228C01E            • ios            • iOS 17.1.2 21B101
    • iPhone 15 Pro Max (mobile) • DDF6AF8C-3566-464A-9633-5B81915C8B5C • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • macOS 13.5.2 22G91 darwin-x64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 120.0.6099.109
    ! Error: Browsing on the local area network for “lv”的 iPhone. Ensure the device is unlocked and attached with a cable
      or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

• No issues found!

How to reproduce?

我我将图片存在了项目根目录的assets下,debug调试没问题,打包后拉起授权页面,logo和btn的图片信息展示不出来,checkedImage的图片可以显示。

Logs

No response

Example code (optional)

No response

Contact

No response

[Discussions] ios存在点击穿透问题,点击全屏下的授权页面会导致flutter页面被点击 以及其它问题

Content

在flutter登录页面调用一键登录,然后在全屏模式下的授权页空白处点击,或者点击有按钮的地方,都会触发flutter页面的点击,导致flutter页面被误点。
另外安卓CheckBoxConfig中的checkedImage需要手动补上flutter_assets/前缀,图片才能出来。
再就是安卓手机的关闭按钮太靠下了点,但是offsetY已经是0了。

Flutter (Channel stable, 3.0.5, on macOS 12.5.1 21G83 darwin-x64, locale zh-Hans-CN)

安卓环境下sloganConfig 设置不生效

flutter 3.3.0
安卓 12
小米10
设置了 sloganConfig: const SloganConfig(sloganText: '使用本机号码一键登录'), 无法生效

 final AuthConfig _authConfig = AuthConfig(
    enableLog: false,
    authUIStyle: AuthUIStyle.fullScreen,
    authUIConfig: FullScreenUIConfig(
      navConfig: NavConfig(navColor: Colors.pinkAccent.toHex()),
      logoConfig: const LogoConfig(logoImage: "images/app_icon"),
      sloganConfig: const SloganConfig(sloganText: '使用本机号码一键登录'),
    ),
  );

20e3e133741941cde412353a18d695d

[Feature request] add Status bar related

Platforms

dart

Description

Can you add the feature of hiding the status bar?
Can you add the feature of set the status bar color?

Why

i want hide the status bar,
i wat set the status bar color

ios 16.4开始的系统版本用不了一键登陆了

Platforms

iOS

Description

反馈 下flutter_ali_auth的这个插件,报600004。ios 16.4的版本用不了一键登录了。需要更新Ios的系统库版本了。也不知道ios为啥系统版本一更新,很多原生库都用不了

Why

ios 16.4开始的系统版本用不了一键登陆了

[Bug report] debug.apk ,profile.apk 使用上都能正常使用。但是release.apk无法正常初始化。

Version

flutter_ali_auth: ^0.6.2

Platforms

Android

Device Model

android 11

flutter info

debug.apk 使用上,正常。但是release.apk 异常。   PlatformException(600017, 初始化失败,sdk为空, null, null)

How to reproduce?

image
在 build 成为 debug 和 profile的apk,都程序包没有问题。但是在build为 release包的时候就会报600017的报错。
image
我检查了程序的appSign的确一样的。但是就是过不了阿里云的验证,真的不知道为什么。请作者指教一下。

Logs

I/flutter ( 8980):  initial 请求参数 ===> {iosSdk: , androidSdk: *****PGS****, enableLog: true, authUIStyle: 0, prefersStatusBarHidden: false, navColor: #00bcd4, logoIsHidden: false, logoImage: images/flutter_candies_logo.png, sloganText: 欢迎登录我的app}

I/flutter ( 8980): _appName=我的app   _packageName=fun.luan.luan_read    _version=1.0.0
I/flutter ( 8980): 初始化 init SDK 出现错误 : PlatformException(600017, 初始化失败,sdk为空, null, null)

Example code (optional)

/// biz if(没登录) => init 一键登录的Sdk.
    if (!context.read<LoginStateSubject>().loginState && CommonPrefs.prefs.get(CommonPrefs.TOKEN)==null ) {
      Future.delayed(Duration.zero,() async {
        try {
          // SmartDialog.showToast("正在初始化...");
          debugPrint("because there is  no token and loginState is false , so my alibaba SDK init...");
          AliAuthClient.removeHandler(); // 1. 先清理监听事件,再绑定。  监听授权页内的点击
          print("注册回调函数?");
          AliAuthClient.handleEvent(onEvent: OneKeyLoginUtil.onClickEvent);
          print(" initial 请求参数 ===> ${OneKeyLoginUtil.authConfig.toJson()} ");
          OneKeyLoginUtil.getAppInfo();
          ///初始化initSdk 返回是否成功
          bool? initSuccess = await AliAuthClient.initSdk(
            ///用户唤醒一键登录页面的认证页面基本UI配置
            authConfig: OneKeyLoginUtil.authConfig,
          );
          if (!(initSuccess ?? false)) {
            debugPrint("初始化SDK失败");
            SmartDialog.showToast("初始化SDK失败...");
          }
        }
        //可以使用 on 或 catch 来捕获异常,使用 on 来指定异常类型,使用 catch 来捕获异常对象,两者可同时使用。
        on PlatformException catch (e) {
          final AuthResultCode resultCode = AuthResultCode.fromCode(
            e.code,
          );
          SmartDialog.showToast(resultCode.message);
          debugPrint("初始化 init SDK 出现错误 : $e");
        }
      });
    }

Contact

No response

登录过程中如何增加loading效果?

Platforms

Android

Description

登录是一个异步的过程,我想再一键登录过程中,有一个加载中(loading)的效果,当登录请求完成时,进行下一步动作.

Why

No response

[Feature request] 因**联通号码认证产品能力升级,且升级后的SDK与原SDK不兼容,为不影响云通信号码认证服务的正常使用,请务必确保在2024年3月31日前完成新方案号的创建,并下载、集成最新版本SDK。具体升级指引请详见:https://m.tb.cn/f1.CZmX2

Platforms

Android, iOS

Description

因**联通号码认证产品能力升级,且升级后的SDK与原SDK不兼容,为不影响云通信号码认证服务的正常使用,请务必确保在2024年3月31日前完成新方案号的创建,并下载、集成最新版本SDK。具体升级指引请详见:https://m.tb.cn/f1.CZmX2

Why

因**联通号码认证产品能力升级,且升级后的SDK与原SDK不兼容,为不影响云通信号码认证服务的正常使用,请务必确保在2024年3月31日前完成新方案号的创建,并下载、集成最新版本SDK。具体升级指引请详见:https://m.tb.cn/f1.CZmX2

[Bug report] 初始化SDK出现错误:PlatformException(600017, 初始化失败,sdk为空, null, null)

Version

0.5.0

Platforms

Android

Device Model

Android 12

flutter info

Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
[√] Flutter (Channel stable, 3.3.10, on Microsoft Windows [版本 10.0.19045.2673], locale zh-CN)
    • Flutter version 3.3.10 on channel stable at D:\Program Files\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 135454af32 (3 months ago), 2022-12-15 07:36:55 -0800
    • Engine revision 3316dd8728
    • Dart version 2.18.6
    • DevTools version 2.15.0
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at D:\Program Files\android_sdk
    • Platform android-TiramisuPrivacySandbox, build-tools 33.0.0
    • ANDROID_HOME = D:\Program Files\android_sdk
    • Java binary at: D:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

How to reproduce?

您好,我从较早的0.4.0版本升级到0.5.0后,初始化SDK报错。
错误信息:
初始化SDK出现错误:PlatformException(600017, 初始化失败,sdk为空, null, null)

在initSdk打印中是可以看到androidSdk的,但是我查看了getAndroidSdk()函数,获取到的值是null。请问是什么原因导致的?

initSdk: {"iosSdk":"","logoImage":"images/flutter_candies_logo.png","authUIStyle":0,"logoIsHidden":false,"sloganText":"欢迎登录FlutterCandies","enableLog":true,"prefersStatusBarHidden":false,"androidSdk":"PPXTyCnLS+kBI9vTr/CGwZGgPp7XYDEUgNQRt5LGnx0StLy5hcAT+fDn3nLj5RQZHi4eljK3zKAoF4GTJP85vqp23a6uShnjNR8Q2LLn0*************************************************************************************************","navColor":"#00bcd4"}

Logs

No response

Example code (optional)

初始化SDK代码如下:


  AuthConfig _authConfig = AuthConfig(
    iosSdk: "",
    androidSdk:   "PPXTyCnLS+kBI9vTr/CGwZGgPp7XYDEUgNQRt5LGnx0StLy5hcAT+fDn3nLj5RQZHi4eljK3zKAoF4GTJP85vqp23a6uShnjNR8Q2LLn0*************************************************************************************************"",
    enableLog: true,
    authUIStyle: AuthUIStyle.fullScreen,
    authUIConfig: FullScreenUIConfig(
      navConfig: NavConfig(navColor: Colors.cyan.toHex()),
      logoConfig: const LogoConfig(
        logoIsHidden: false,
        logoImage: "images/flutter_candies_logo.png",
      ),
      sloganConfig: const SloganConfig(sloganText: '欢迎登录FlutterCandies'),
    ),
  );

Contact

No response

Flutter方法回调问题

AliAuthClient 这个类的回调参数其实都是通过EventChannel获取到的,

  1. 那么 static Future initSdk() static Future login() 这些方法 其实写成 static void initSdk() static void login() 更好一些吧。
  2. EventChannel回调给flutter的时候,是不是带上方法的名字更好一些("init"/ "checkEnv"),这样方便知道是哪个方法响应的。
  3. 通过MethodChannel回调给flutter端可能更符合使用的场景。

[Feature request]

Platforms

Android, iOS

Description

p480101
你好,想问下这个二次授权弹窗页面有实现吗,或者有什么方法在授权页面显示一个弹窗,现在授权页面的层级太高,把弹窗都遮盖了。

Why

No response

[Bug report] 联通手机号报错 {"resultCode":"600012","msg":"应用无效","requestId":"67316cb2-8131-488b-b175-9530664ffd95"}

Version

0.7.0

Platforms

dart

Device Model

小米 11 android 13

flutter info

[✓] Flutter (Channel stable, 3.16.8, on macOS 13.2 22D49 darwin-x64, locale
    zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)

How to reproduce?

双卡手机,一开始使用电信联网,一切正常,然后流量切换到联通手机号包下面的错误{"resultCode":"600012","msg":"应用无效","requestId":"67316cb2-8131-488b-b175-9530664ffd95"}

一开始流量使用联通手机号也是同样的问题

Logs

W/System.err(30581): org.json.JSONException: End of input at character 0 of 
W/System.err(30581): 	at org.json.JSONTokener.syntaxError(JSONTokener.java:460)
W/System.err(30581): 	at org.json.JSONTokener.nextValue(JSONTokener.java:101)
W/System.err(30581): 	at org.json.JSONObject.<init>(JSONObject.java:168)
W/System.err(30581): 	at org.json.JSONObject.<init>(JSONObject.java:185)
W/System.err(30581): 	at com.nirvana.tools.jsoner.JSONUtils.fromJson(Unknown Source:138)
W/System.err(30581): 	at com.mobile.auth.gatewayauth.model.cucctoken.CUCCTokenRB.fromJson(Unknown Source:1)
W/System.err(30581): 	at com.nirvana.tools.jsoner.JSONUtils.fromJson(Unknown Source:11)
W/System.err(30581): 	at com.mobile.auth.gatewayauth.model.cucctoken.CUCCTokenRB.fromJson(Unknown Source:17)
W/System.err(30581): 	at com.mobile.auth.u.a$1.a(Unknown Source:50)
W/System.err(30581): 	at com.mobile.auth.ab.b.a(Unknown Source:45)
W/System.err(30581): 	at com.mobile.auth.ab.a$2.a(Unknown Source:127)
W/System.err(30581): 	at com.mobile.auth.ab.a$4.run(Unknown Source:40)
W/System.err(30581): 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:463)
W/System.err(30581): 	at java.util.concurrent.FutureTask.run(FutureTask.java:264)
W/System.err(30581): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
W/System.err(30581): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
W/System.err(30581): 	at java.lang.Thread.run(Thread.java:1012)
E/AuthSDK (30581): justGetLoginPhone failed!{"a":"600012","b":"应用无效","c":"{\"resultCode\":102,\"resultMsg\":\"应用无效\",\"resultData\":\"\",\"traceId\":\"\",\"operatorType\":\"CU\"}","d":"{\"msg\":\"应用无效\",\"code\":\"102\"}","e":false,"f":0}
W/AuthClient(30581): 获取Token失败:{"carrierFailedResultData":"{\"resultCode\":102,\"resultMsg\":\"应用无效\",\"resultData\":\"\",\"traceId\":\"\",\"operatorType\":\"CU\"}","code":"600012","msg":"应用无效","requestCode":0,"requestId":"67316cb2-8131-488b-b175-9530664ffd95","vendorName":"cu_xw"} ,DecoyMaskActivity.isRunning:com.fluttercandies.flutter_ali_auth.mask.DecoyMaskActivity@6845a99
I/AuthClient(30581): tokenRet:TokenRet{vendorName='cu_xw', code='600012', msg='应用无效', carrierFailedResultData={"resultCode":102,"resultMsg":"应用无效","resultData":"","traceId":"","operatorType":"CU"}', requestId=67316cb2-8131-488b-b175-9530664ffd95', requestCode=0, token='null'}
I/flutter (30581): responseModel:{"resultCode":"600012","msg":"应用无效","requestId":"67316cb2-8131-488b-b175-9530664ffd95"}
W/hanyu.hanyu_bct(30581): Attempt to remove non-JNI local reference, dumping thread
I/flutter (30581): [600012] 预取号失败
I/flutter (30581): {"resultCode":"600012","msg":"应用无效","requestId":"67316cb2-8131-488b-b175-9530664ffd95"}
D/DecorView[](30581): onWindowFocusChanged hasWindowFocus false

Example code (optional)

AliAuthClient.initSdk(authConfig:AuthConfig(
      iosSdk:
          "",
      androidSdk:
          "",
      enableLog: false,
      authUIStyle: AuthUIStyle.fullScreen,
      authUIConfig: FullScreenUIConfig(navConfig: NavConfig(navColor: Colors.cyan.toHex()))));


await AliAuthClient.login();

Contact

No response

[Bug report] debug包登录正常,release包一直初始化失败

Version

0.6.2

Platforms

Android

Device Model

pixel 6

flutter info

flutter doctor -v                                                                                                                         
[√] Flutter (Channel stable, 3.10.2, on Microsoft Windows [Version 10.0.22621.1702], locale en-US)
    • Flutter version 3.10.2 on channel stable at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9cd3d0d9ff (2 weeks ago), 2023-05-23 20:57:28 -0700
    • Engine revision 90fa3ae28f
    • Dart version 3.0.2
    • DevTools version 2.23.1

How to reproduce?

按照这2issue修改 proguard-rules.pro,依旧release包失败,debug包正常

Logs

No response

Example code (optional)

No response

Contact

No response

全屏模式下样式字段配置未生效,基于0.7.0版本的demo复现的问题

Version

0.7.0

Platforms

dart

Device Model

一加Ace Pro 型号PGP110 系统版本13.1

flutter info

[√] Flutter (Channel stable, 3.16.9, on Microsoft Windows [版本 10.0.17763.1999], locale zh-CN)
    • Flutter version 3.16.9 on channel stable at E:\android\FlutterSdk
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 41456452f2 (4 weeks ago), 2024-01-25 10:06:23 -0800
    • Engine revision f40e976bed
    • Dart version 3.2.6
    • DevTools version 2.28.5
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

How to reproduce?

在0.7.0版本的demo上,
prefersStatusBarHidden配置未生效,true/false页面没有任何变化,
backgroundColor配置未生效,背景颜色始终是白色的,backgroundImage没问题,可以生效。
暗色模式切换后demo的首页跟着变了。但是授权页没变化。把手机系统暗色模式切换后,授权页面才变了。

Logs

No response

Example code (optional)

No response

Contact

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.