iOS第三方登錄總結(jié)(三)Line

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

image.png

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


image.png

第二部分填寫
白名單


image.png

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


image.png

二、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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容