Line登錄集成
1.申請Line賬號
2.創(chuàng)建應(yīng)用
3.獲取應(yīng)用編號
4.配置相關(guān)信息
5.xcode配置
6.代碼集成
一、創(chuàng)建應(yīng)用
1.需要登錄Line開發(fā)者平臺申請 https://developers.line.biz/en/
2.然后添加iOS平臺 - 填寫應(yīng)用名稱 - 創(chuàng)建應(yīng)用編號 - 為應(yīng)用添加產(chǎn)品,然后到設(shè)置中完善相關(guān)信息,然后保存,配置Bundle ID,這些都是按照流程一步步填寫就可以了
這里主要獲取channel id

3.配置完成之后你就可以得到xcode中info.plist文件中的配置信息
info.plist填寫分成二部分
第一部分填寫
URL types copy填寫就行 ->可以參考源碼

第二部分填寫
白名單

第三部分填寫配置 把申請的channel id 填寫上 ->可以參考源碼

二、xcode配置(接入SDK)
加載安裝包 pod 'LineSDKSwift', '~> 5.5.0' (這里之前接入過oc的但是后來發(fā)現(xiàn)Line的oc版本一直更新不下來也沒找到文檔是不是廢棄了所以更新了Swift的版本的 如果不習(xí)慣Swift可以試試 pod 'LineSDK' )
三、代碼集成
這里封裝了Swift的版本的LineLogin
1.LineLogin ->源碼在下邊
@objc enum LoginResultStatus: NSInteger {
case error
case cancelled
case success
}
class LineLogin: NSObject {
private static var manager: LineLogin?
@objc class func getSharedInstance() -> LineLogin {
guard let instance = manager else {
manager = LineLogin()
return manager!
}
return instance
}
@objc class func registerLine() {
LoginManager.shared.setup(channelID: "Your channelID", universalLinkURL: nil)
}
@objc class func applicationOpenurl(_ app: UIApplication,
open url: URL?) -> Bool {
return LoginManager.shared.application(app, open: url)
}
@objc class func application(
_ application: UIApplication,
continueWithUserActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
return LoginManager.shared.application(application, open: continueWithUserActivity.webpageURL)
}
@objc func loginLine(fromController: UIViewController, completeWithError: @escaping (_ loginStatus: LoginResultStatus, _ token: String?, _ email: String? , _ error: Error?) -> Void) {
var param = LoginManager.Parameters.init()
param.allowRecreatingLoginProcess = true
LoginManager.shared.login(permissions: [.openID, .profile], in: fromController, parameters: param) { (result) in
switch result {
case .success(let loginResult):
if let _ = loginResult.accessToken.IDTokenRaw {
completeWithError(.success, loginResult.accessToken.value, nil, nil)
} else {
completeWithError(.success, "", nil, nil)
}
case .failure(let error):
print(error)
completeWithError(.cancelled, "", nil, nil)
}
}
}
@objc class func destroyLine() {
LineLogin.manager = nil
}
}
2.Appdelegate中
#import "LineLogin-Swift.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[LineLogin registerLine];
return YES;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([url.scheme isEqualToString:@"line3rdp.yourbundleid"]) {
return [LineLogin applicationOpenurl:app open:url];
}
return false;
}
3.登錄調(diào)用
LineLogin *line = [LineLogin getSharedInstance];
[line loginLineFromController:self completeWithError:^(LoginResultStatus loginStatus, NSString * _Nullable token, NSString * _Nullable emali, NSError * _Nullable error) {
if (loginStatus == LoginResultStatusSuccess) {
} else if (loginStatus == LoginResultStatusCancelled) {
} else if (loginStatus == LoginResultStatusError) {
}
}];
以上是集成的方法。到這里基本集成完成如果你的ChannelId沒問題就好喚起 Line 登錄
代碼傳送
https://github.com/Tong-MX/LineLogin.git