團隊里接到一個雙端app的外包項目,需要刷臉登錄功能。
雙端嘛,就想到用react-native寫會省很多人力。
但是SDK都是原生的,所以本文要講的是在原生處完成刷臉登錄后就跳轉到react的頁面。從而讓你的react項目有刷臉登錄功能。
1.創建react-native項目
1.創建完成后的目錄是這樣的:
2.打開MyApp.xcodeproj,進到AppDelegate.m
這里其實是設置程序啟動后就直接來到react的窗口,我們把它抽出來,然后改為iOS原生那樣子的加載方式。
新建一個Login.storyboard的故事板,然后添加一個控制器,在控制器添加一個按鈕監聽登錄事件。
然后記住把Main interface設置為Login,即程序啟動時進入剛剛我們創建的登錄頁面,而不是react頁面。
3.把appdelegate.m文件里加載react-native的代碼抽到登錄頁面的控制器,記住也要把頭文件搬過去。
把這部分代碼剪切
放到LoginViewController里,寫成一個gotoReactNative的方法
其中launchOptions會報錯,改為nil就行。還有用UIApplication.sharedApplication.delegate獲取窗口把根控制器換掉就OK啦!
然后在登錄按鈕里直接調用這個方法,就完成里從原生登錄完,跳轉到react-native里的操作。
到這里已經完成了在原生登錄完跳到react-native里這樣一個需求。要加入人臉識別,需要借助第三方,請往下看。
2.注冊一登開發者賬號
1.注冊地址:http://www.superid.me/developer/index.html
2.創建一個應用,iOS里的Bundle Identifier填寫剛剛react-native項目iOS里的Bundle Identifier。
3.下載SDK和將SDK導入react-native的iOS項目里。下載地址:https://github.com/SuperID/superid-ios-sdk
直接把SDK拖到項目里就行。參考文檔:http://www.superid.me/developer/document-ios/ios_quickstart.html
4.項目中添加-ObjC、-lstdc++編譯選項。
5.iOS10 適配,增加相機、相冊權限說明.在項目 Info.plist 源碼文件中拷貝入下內容:
<key>NSCameraUsageDescription</key>
<string>需要使用您的相機進行刷臉認證</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>一登需要訪問您的相冊</string>
6.初始化 SDK
首先:在AppDelegate.m文件中,導入 SuperID SDK頭文件。
#import"SIDHeader.h"
接著,在 app delegate 方法中添加如下初始化代碼:
- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions {??
? [SuperIDregisterAppWithAppID:@"AppID"withAppSecret:@"AppSecret"];//開啟一登SDK的調試模式,開發者在Release時,將該模式設置為NO.
[SuperIDsetDebugMode:YES];//設置一登 SDK 的語言模式,默認為自動模式。
[SuperIDsetLanguageMode:SIDAutoMode];
returnYES;
}
將appid和appsecret換成你一登應用的appid和appsecret。
7.在LoginViewCtroller里添加一個faceLogin的方法,加入以下代碼:
代碼如下:
-(void)faceLogin{
[SIDCoreLoginKitshowLoginViewControllerWithAppUserInfoModel:nilresponseBlock:^(NSDictionary*result,NSError*error) {
if(!error) {
//授權登錄成功
NSLog(@"userInfo:%@", result);
NSLog(@"登錄成功!");
[selfgotoReactNative];
}else{
//授權登錄失敗
NSLog(@"Login Fail Error =%ld,%@",(long)[errorcode],[errorlocalizedDescription]);
NSLog(@"登錄失敗!");
}
}];
}
8.在剛剛的登錄按鈕里點擊監聽faceLogin這個方法。
到這里,刷臉登錄完成跳轉到react-native里就大功告成啦!!!
你可以那真機開開心心測試一下!
注意:一定要拿真機測試!!!一定要拿真機測試!!!一定要拿真機測試!!!
因為這里用到了攝像頭!!!