目录

扩展开发手册(废弃)

Android扩展开发手册

开发要求

【技能要求】
【设备要求】

环境搭建

开发步骤

1、创建工程

2、集成第三方SDK

3、扩展代码编写

4、调试测试

5、扩展服务制作

参见本文上级目录

iOS扩展开发手册

开发要求

【技能要求】
【设备要求】

环境搭建

开发步骤

1、创建工程

2、集成第三方SDK

3、扩展代码编写

图片资源需要放到.bundle中使用

4、调试测试

5、扩展服务制作

参见本文上级目录

6、样例

MyExtension.h

  1. @interface MyExtension : NSObject
  2. @end

MyExtension.m

  1. // 引入头文件
  2. #import <Mediator/Mediator.h>
  3. @implementation MyExtension
  4. + (void)load {
  5. // 注册扩展服务
  6. [[IUMMediator sharedInstance] registerExtension:@"A" forClass:@"MyExtension"];
  7. }
  8. // 扩展服务方法
  9. - (void)myMethod:(id<SUMExtension>)args {
  10. // 场景1:页面跳转
  11. ({
  12. // 获取 Summer 中的 window
  13. UIViewController *sumWindow = [args sum_container];
  14. UIViewController *toVC; // 要跳转的 ViewController
  15. [sumWindow.navigationController pushViewController:toVC animated:YES];
  16. });
  17. // 场景2:获取 JavaScript 端传递过来的参数
  18. ({
  19. NSDictionary *params = [args params];
  20. NSString *value = params[@"key"];
  21. });
  22. // 场景3:回调 JavaScript 端
  23. BOOL success;
  24. id returnValue; // 返回参数,可以是 NSString、Number、NSDictionary、NSArray 等。
  25. if (success) {
  26. // 成功回调
  27. [args evaluateJavaScriptCallbackWithObject:returnValue];
  28. }
  29. else {
  30. // 失败回调
  31. [args evaluateJavaScriptErrorWithObject:returnValue];
  32. }
  33. }
  34. @end

JS 中调用方法

  1. var params = {
  2. "params": {
  3. "key": "hello world"
  4. }
  5. "callback": "callbackFunction()",
  6. "error": "errorFunction()",
  7. };
  8. summer.callService("A.myMethod", )
文档更新时间: 2018-01-15 14:29