line / flutter_line_sdk

A Flutter plugin that lets developers access LINE's native SDKs in Flutter apps with Dart.
https://developers.line.biz/
Apache License 2.0
213 stars 42 forks source link

3003错误 #60

Closed JW-chenjingwei closed 2 years ago

JW-chenjingwei commented 2 years ago

喵神大大,遇到一个问题找了很久都无法解决:

版本:flutter_line_sdk-1.3.0 flutterSDK:2.10.1 Dart SDK version: 2.16.2

在iOS端登录后返回“The user cancelled or interrupted the login process. Code 3003”, 我确保已经按文档要求进行配置了,有人建议在application:(UIApplication *)application openURL方法添加“LoginManager.shared.application(app, open: url)”实现,因为我iOS端工程是OC项目,貌似LineSDK没有桥接文件可以让oc调用?

JW-chenjingwei commented 2 years ago

已解决,需要添加 pod 'LineSDKSwift/ObjC', '~> 5.0'

onevcat commented 2 years ago

默认情况下 LINE SDK 是会处理 openURL 的,但是前提是 app (或者说 Flutter) 确实把这个调用传递给了 LINE SDK。各个插件需要向 Flutter 注册表示自己希望处理 openURL;在 app 收到一个 URL 时,Flutter 会顺次询问各个插件,是否能进行处理。

这类问题,大概率是别的插件错误地实现了 application:(UIApplication *)application openURL 方法,针对 LINE SDK 的 URL,它也返回了 true,表示这个 url 已经被处理了。遇到这种情况时,Flutter 就不再会继续向其他插件进行询问,导致 LINE SDK 无法收到 URL,从而登入失败。

个人的建议是寻找一下是哪个插件的实现出现了错误,然后向他们提交 issue,会比直接在一开始添加 LoginManager.shared.application(app, open: url) 要更“正确”一些。

JW-chenjingwei commented 2 years ago

明白,感谢大佬的指导