MJAiSearchSDK
示例
要运行示例项目,克隆仓库,然后首先从 Example 目录运行 `pod install`。
要求
安装
MJAiSearchSDK 可通过 CocoaPods 获得。要安装,只需将以下行添加到您的 Podfile 中:
platform:ios, '9.0' # 仅支持iOS9.0及以上设备
target 'TargetName' do
pod 'MJAiSearchSDK'
end
如果找不到,请运行 pod repo update --verbose
更新 cocoapods 仓库。
更新描述
V1.3.1 移除GTMBase64依赖
V1.2.8 新增一言为定功能,便于在无vin的情况下快速将江湖名转换为明觉标准名
V1.2.3 在圈选区域偏小或者没有圈到车体时添加代理,修复其他bug
V1.2.1 可以自定义圈选线条颜色,优化圈选页面
V1.2.0 移除对Masonry的依赖,进一步缩小SDK体积,修复圈选bug
V1.1.9 移除依赖 更容易集成
V1.1.8 修复bug
V1.1.5 更新内容
1. 可以自定义设置license位置 示例:
[[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"MJResources" ofType:@"bundle"]]URLForResource:@"mj_license" withExtension:@"lic"]
2. 可以自定义圈选页面的小汽车图片和小汽车上下位置的offset值 3. 修复bug
V1.1.4 更新内容
移除圈选页面的切换车体按钮和文字label
教程
SDK简述
本SDK开发旨在提供方便快捷地获取汽车配件信息,通过VIN码或汽车品牌配置信息进行车辆定型后即可使用圈选或者配件名、OE等形式获取配件信息。
本SDK使用需获取license。商务合作请联系明觉科技,SDK仅限于合作客户使用,违法必究!
SDK分类
为方便用户使用SDK,根据自身需求选用功能模块,我们将其拆分成五大模块
- MJVinParseLib.framework -- VIN定型服务模块,提供VIN定型相关功能,原则上推荐所有用户选用。
- MJAreaSearchPartLib.framework -- 圈选小汽车得到相应区域配件信息,推荐所有用户使用。
- MJSearchPartLib.framework -- 配件搜索服务模块,提供配件名、配件OE搜索配件,推荐所有用户使用。
- MJSearchEPCPartLib.framework -- EPC图选服务模块,提供查询周围配件功能。
- MJOrderServiceLib.framework -- 定损推荐服务,提供定损工时和推荐工时服务。
- MJDataLib.framework -- 基础通讯模块,原则上必须接入。
SDK集成步骤
- 使用cocoapods集成SDK
- 初始化SDK。userinfo格式请参考Demo工程。
[[MJDamageAssessmentManager sharedInstance] configureWithUserInfo:userInfo complete:^(BOOL success) {}];
- 愉快使用SDK的其他功能。
SDK模块介绍
一、MJVinParseLib.framework -- VIN定型服务
1. VIN定型接口,输入合法的VIN码,返回VIN解析结果。
+ (void)vinParseWithVinCode:(nonnull NSString *)vinCode completion:(_Nullable ServiceResponseBlock)completion;
2. 检查VIN前三位,输入VIN前三位,快速了解是否可以解析。
+ (void)checkVINTop3:(nonnull NSString*)vintop3 completion:(_Nullable
ServiceResponseBlock)completion;
3. 获得授权后,可以查询品牌列表。
+ (void)getMyAuthBrandsCompletion:(_Nullable ServiceResponseBlock)completion;
4. 获得PlanB数据- 当VIN无法定型时使用,输入上一个接口中获得的可查询品牌。
+ (void)getPlanBBrandsWithBrand:(nonnull NSString*)brand completion:(_Nullable ServiceResponseBlock)completion;
5. 根据车辆品牌、制造商及车型获取车辆的排量以及变速箱等信息。
@param brand 车辆品牌 -从+ (void)getPlanBBrandsWithBrand:(nonnull NSString*)brand completion:(_Nullable ServiceResponseBlock)completion;接口中获取到的数据
@param maker 制造商 -从+ (void)getPlanBBrandsWithBrand:(nonnull NSString*)brand completion:(_Nullable ServiceResponseBlock)completion;接口中获取到的数据
@param vehicleChn 车型 -从+ (void)getPlanBBrandsWithBrand:(nonnull NSString*)brand completion:(_Nullable ServiceResponseBlock)completion;接口中获取到的数据
@param body 车体 -从+ (void)getPlanBBrandsWithBrand:(nonnull NSString*)brand completion:(_Nullable ServiceResponseBlock)completion;接口中获取到的数据
@param completion 返回数据
*/
+ (void)getPlanBBrandDetailWithBrand:(nonnull NSString*)brand maker:(nonnull NSString*)maker vehicleChn:(nonnull NSString*)vehicleChn body:(nonnull NSString*)body completion:(ServiceResponseBlock)completion;
6. OCR服务 识别行驶证(暂不提供服务)
+ (void)ocrServiceWithImage:(nonnull UIImage*)image completion:(_Nullable ServiceResponseBlock)completion;
二、MJAreaSearchPartLib.framework -- 圈选配件服务
圈选配件服务使用方法
MJDrawCircleSearchPartController* draw = [[MJDrawCircleSearchPartController alloc]initWithCanvasFrame:CGRectMake(0, 94, 240, 400)];
draw.delegate = self;
[self addChildViewController:draw];
[self.view addSubview:draw.view];
[draw didMoveToParentViewController:self];
以上方法将MJDrawCircleSearchPartController中的view添加到您自己的viewController中,便于使用,在添加代理之后,圈选得到的配件将在代理方法中返回,代理方法如下
- (void)canvasCircleSelectedPartsCompletion:(NSArray<MJPart *> *)parts;
当然,我们在请求开始以及结束的时候也提供了代理方法
/**
圈选之后开始请求
*/
- (void)canvasCircleRequestStart;
/**
圈选请求结束
*/
- (void)canvasCircleRequestEnd;
在需要查询底盘件的时候我们还提供了切换车体的方法,其中mode有两个值: MJDrawModeBody //车身件 MJDrawModeChassis //底盘件 方法如下:
- (void)switchDrawSearchModeWithMode:(MJDrawMode)mode;
三、MJSearchPartLib.framework -- 配件搜索服务
配件搜索服务提供以下方法
1. 首字母联想 - 传入需要联想的字符串(可以是英文可以是中文),即刻返回明觉标准配件名列表。
+ (void)firstLetterRecommendWithText:(nonnull NSString*)text completion:(_Nullable ServiceResponseBlock)completion;
2. 搜索配件接口 - 传入需要搜索的关键字:可以是配件名也可以是OE号,可以是多个配件名加上工项(更换,维修,喷漆,钣金,拆装等)以及搜索渠道(语音,手动输入,首字母)即可搜索配件。
该接口提供语义定损服务,返回数据不仅包含配件数据,也将包含用户输入的语义工项,返回的数据是MJPart的对象。
+ (void)searchPartWithKey:(nonnull NSString*)key query:(MJSearchQurey)query completion:(_Nullable ServiceResponseBlock)completion;
示例
[MJSearchPartService searchPartWithKey:@"换前保险杠皮拆左前大灯壳右前大灯维修前盖更换发动机" query:(MJSearchQureyManuel) completion:^(id _Nullable response, BOOL success, NSError * _Nullable error) {
}];
3.二度推荐配件 - 每次搜索最多提供7个配件信息,当用户需要更多配件时,建议调用此方法以获取更多配件推荐。
该方法提供二度推荐:上拉加载更多配件
+ (void)researchPartCompletion:(_Nullable ServiceResponseBlock)completion;
3.1. 精准二度推荐配件 - 传入用户已选的配件来获取更精准的二度推荐配件。
该方法提供二度推荐:上拉加载更多配件
+ (void)researchPartWithSelectedParts:( NSArray<MJPart *> * _Nullable )parts Completion:(_Nullable ServiceResponseBlock)completion;
4.获取配件图片
+ (void)requestImageWithImageName:(nonnull NSString *)imageName
completion:(_Nullable ServiceResponseBlock)completion;
4.1. 根据MJPart获取配件图片
+ (void)requestImageWithPart:(nonnull MJPart*)part completion:(_Nullable ServiceResponseBlock)completion;
5.获取EPC图片
+ (void)requestImageWithImageName:(nonnull NSString *)imageName imagepath:(nonnull NSString *)imagepath
completion:(_Nullable ServiceResponseBlock)completion;
5.1. 根据MJPart获取EPC图片
+ (void)requestEpcImageWithPart:(nonnull MJPart*)part
completion:(_Nullable ServiceResponseBlock)completion;
6.一言为定语义解析功能
根据传入的关键字key进行语义解析,返回明觉标准名,以及维修工项
+ (void)partAnalysisWithKey:(nonnull NSString*)key completion:(_Nullable ServiceResponseBlock)completion;
四、MJSearchEPCPartLib.framework -- 周围配件搜索服务
1.根据OE号 EPC图片名和图片路径查询相邻配件
+ (void)searchRelatedPartsWithImageName:(nonnull NSString *)imageName imagepath: (nonnull NSString *)imagePath oeNumber:(nonnull NSString *)oeNumber completion: (_Nullable ServiceResponseBlock)completion;
1.1.根据MJPart查询相邻配件
+ (void)searchRelatedPartsWithPart:(nonnull MJPart *)part
completion:(_Nullable ServiceResponseBlock)completion;
五、MJOrderServiceLib.framework -- 定损服务
1.提供定损接口,传入用户已选择的配件信息,返回相应的估价单,其中包含配件的工项价格和配件关联关系
+ (void)assessmentWithParts:(nonnull NSArray *)parts completion: (_Nullable ServiceResponseBlock)completion;
注意事项: 传入的MJPart需要设定工项为YES:
字段 | 描述 |
---|---|
replaceStatus | 更换状态,是否更换 |
paintStatus | 喷漆状态,是否喷漆 |
fitStatus | 拆卸状态,是否拆卸 |
panelStatus | 维修状态,是否维修,注意维修状态需要同时设置damageDegree,可选值为:轻度、中度、重度 ,默认中度 |
auxiliaryStatus | 维修状态,是否辅料 |
outRepairStatus | 维修状态,是否外修 |
electroMechanicalStatus | 维修状态,是否机电 |
accessoryStatus | 拆装附件状态,是否拆装附件 |
返回为字典数组
其中estimateChooseList为已选配件的工时工项信息,estimateOtherList为推荐的工项工时信息,字典详细解释如下
key | 解释 |
---|---|
chooseList | 已选工项 |
deleteList | 推荐剔除工项 |
partId | 配件ID |
partName | 配件名称 |
recommendList | 推荐选择工项 |
labor | 工时金额 |
选项 | 工项 |
错误码说明
ErrorCode | ErrorDesc |
---|---|
9001 | 警告!非法请求! |
50001 | 请先进行VIN定型 |
50002 | VIN码错误 |
50003 | 请输入正确的搜索渠道 |
50004 | OE号错误 |
50005 | 图片名称错误 |
50006 | 请至少先进行圈选或者搜索 |
50009 | 请求出错 |
50010 | 没有配件 |
90001 | 传入非法的MJPart |
作者
袁兴杨, [email protected]