接入讯飞SDK及参数设置

简要描述

主要协助云上越秀App对接云学堂.AI智能教练H5过程中,为了减少H5在App内的兼容性,iOS接入WKwebview;

iOS接入WKWebView

iOS平台接入WKWebView的示例代码:

  1. #import <WebKit/WebKit.h> // 导入WebKit框架
  2. @property (nonatomic) WKWebView *webView; // 声明webView属性
  3. /// 懒加载webView的属性
  4. - (WKWebView *)webView {
  5. if (_webView == nil) {
  6. _webView = [[WKWebView alloc]init];
  7. _webView.navigationDelegate = self;
  8. _webView.translatesAutoresizingMaskIntoConstraints = NO;
  9. }
  10. return _webView;
  11. }
  12. /// 获取webView的约束
  13. - (NSArray <NSLayoutConstraint *> *)getBindEdgesConstraintsForView:(UIView *)view {
  14. CGRect statusFrame = [PHAIUtils statusBarFrame];
  15. CGFloat statusHeight = statusFrame.size.height;
  16. CGFloat navigationBarHeight = self.navigationController.navigationBar.frame.size.height;
  17. NSLayoutConstraint *top = [NSLayoutConstraint constraintWithItem:view
  18. attribute:NSLayoutAttributeTop
  19. relatedBy:NSLayoutRelationEqual
  20. toItem:self.view
  21. attribute:NSLayoutAttributeTop
  22. multiplier:1
  23. constant:(statusHeight + navigationBarHeight)];
  24. NSLayoutConstraint *bottom = [NSLayoutConstraint constraintWithItem:view
  25. attribute:NSLayoutAttributeBottom
  26. relatedBy:NSLayoutRelationEqual
  27. toItem:self.view
  28. attribute:NSLayoutAttributeBottom
  29. multiplier:1
  30. constant:0];
  31. NSLayoutConstraint *leading = [NSLayoutConstraint constraintWithItem:view
  32. attribute:NSLayoutAttributeLeading
  33. relatedBy:NSLayoutRelationEqual
  34. toItem:self.view
  35. attribute:NSLayoutAttributeLeading
  36. multiplier:1
  37. constant:0];
  38. NSLayoutConstraint *traling = [NSLayoutConstraint constraintWithItem:view
  39. attribute:NSLayoutAttributeTrailing
  40. relatedBy:NSLayoutRelationEqual
  41. toItem:self.view
  42. attribute:NSLayoutAttributeTrailing
  43. multiplier:1
  44. constant:0];
  45. return @[top, bottom, leading, traling];
  46. }
  47. /// 添加WKWebView和约束
  48. [self.view addSubview:self.webView];
  49. [self.view addConstraints:[self getBindEdgesConstraintsForView:self.webView]];

WKWebView页面的返回处理方法:

  1. - (void)backAction:(UIButton *)sender {
  2. PHAILog(@"点击了返回按钮。");
  3. GloablLog(@"点击了返回按钮。");
  4. if ([self.webView canGoBack]) {
  5. [self.webView goBack];
  6. } else {
  7. [self.navigationController.presentingViewController dismissViewControllerAnimated:YES completion:^{
  8. if (PHAISparring.refreshH5Block) {
  9. PHAISparring.refreshH5Block(YES);
  10. }
  11. }];
  12. if (self.backBlock) {
  13. self.backBlock();
  14. }
  15. }
  16. }