嵌入式对接方案
## 小程序
![image.png](https://cos.easydoc.net/74722269/files/lwu5jvge.png)
### 1. 客户小程序跳转SSC小程序
appId和path由免密接口获取
redirectText: 签约结束后,可自定义返回按钮的文案,默认“返回”
``` js
wx.navigateToMiniProgram({
appId: `wxXXXXXXXXXXXXXXX`,
path: `/pages/index/secret-free-login?code=XXX&idCode=XXX&redirectText=${返回按钮文案}`,
})
```
### 2. 刷脸完成后
SSC小程序会用以下方式跳回贵司小程序
``` js
wx.navigateBackMiniProgram()
```
## app
app采用h5嵌入的方式,h5链接由免密接口获取,需要开启摄像头权限才可以打开刷脸认证
### IOS
使用WKWebView并调用原生摄像头
1. 在Info.plist中添加调用相机的权限
``` OC
Privacy - Camera Usage Description
```
2. 设置WKWebView相关
``` OC
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
// 打开摄像头权限
config.preferences.javaScriptEnabled = YES;
config.allowsInlineMediaPlayback = YES;
```
3. 将config传入初始化方法中
``` OC
(instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration
```
### Android
web-view嵌入,被内嵌的H5会向安卓请求打开摄像头权限,h5运行中webview上,webview是app中使用的一个控件,可认为h5的权限是向webview或app申请的。这是要注意的区别,app获得权限不等于h5也获得了权限。
1. 确保app已经拥有了摄像头权限
2. 在Mainfest中添加相机权限
``` xml
<uses-permission android:name="android.permission.CAMERA" /> <!-- 相机 -->
```
3. h5向app申请录音和相机权限,重写WebChromeClient,以下代码是默许打开摄像头权限(可能面临合规审核)
``` java
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onPermissionRequest(PermissionRequest request) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// 授权(接受申请)
request.grant(request.getResources());
request.getOrigin();
}
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
// todo 实现弹框以及弹框的确认
result.confirm();
return true;
}
});
```