add 自定义小程序api和H5 api的实例
parent
6e5938925e
commit
e24fbd2d04
|
@ -13,6 +13,7 @@
|
||||||
9DD565C923EC450A0011FC4A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9DD565C823EC450A0011FC4A /* Assets.xcassets */; };
|
9DD565C923EC450A0011FC4A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9DD565C823EC450A0011FC4A /* Assets.xcassets */; };
|
||||||
9DD565CC23EC450A0011FC4A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9DD565CA23EC450A0011FC4A /* LaunchScreen.storyboard */; };
|
9DD565CC23EC450A0011FC4A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9DD565CA23EC450A0011FC4A /* LaunchScreen.storyboard */; };
|
||||||
9DD565CF23EC450A0011FC4A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DD565CE23EC450A0011FC4A /* main.m */; };
|
9DD565CF23EC450A0011FC4A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DD565CE23EC450A0011FC4A /* main.m */; };
|
||||||
|
A863B745257A09A300959AA1 /* FINExtensionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A863B744257A09A300959AA1 /* FINExtensionHelper.m */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
@ -27,6 +28,8 @@
|
||||||
9DD565CB23EC450A0011FC4A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
9DD565CB23EC450A0011FC4A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
9DD565CD23EC450A0011FC4A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
9DD565CD23EC450A0011FC4A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
9DD565CE23EC450A0011FC4A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
9DD565CE23EC450A0011FC4A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||||
|
A863B743257A09A200959AA1 /* FINExtensionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FINExtensionHelper.h; sourceTree = "<group>"; };
|
||||||
|
A863B744257A09A300959AA1 /* FINExtensionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FINExtensionHelper.m; sourceTree = "<group>"; };
|
||||||
FBEBA7E73B95B66C846E76FF /* Pods-demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo.debug.xcconfig"; path = "Target Support Files/Pods-demo/Pods-demo.debug.xcconfig"; sourceTree = "<group>"; };
|
FBEBA7E73B95B66C846E76FF /* Pods-demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo.debug.xcconfig"; path = "Target Support Files/Pods-demo/Pods-demo.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
@ -65,6 +68,8 @@
|
||||||
children = (
|
children = (
|
||||||
9DD565BC23EC45080011FC4A /* AppDelegate.h */,
|
9DD565BC23EC45080011FC4A /* AppDelegate.h */,
|
||||||
9DD565BD23EC45080011FC4A /* AppDelegate.m */,
|
9DD565BD23EC45080011FC4A /* AppDelegate.m */,
|
||||||
|
A863B743257A09A200959AA1 /* FINExtensionHelper.h */,
|
||||||
|
A863B744257A09A300959AA1 /* FINExtensionHelper.m */,
|
||||||
9DD565C223EC45080011FC4A /* ViewController.h */,
|
9DD565C223EC45080011FC4A /* ViewController.h */,
|
||||||
9DD565C323EC45080011FC4A /* ViewController.m */,
|
9DD565C323EC45080011FC4A /* ViewController.m */,
|
||||||
9DD565C823EC450A0011FC4A /* Assets.xcassets */,
|
9DD565C823EC450A0011FC4A /* Assets.xcassets */,
|
||||||
|
@ -206,6 +211,7 @@
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
9DD565C423EC45080011FC4A /* ViewController.m in Sources */,
|
9DD565C423EC45080011FC4A /* ViewController.m in Sources */,
|
||||||
|
A863B745257A09A300959AA1 /* FINExtensionHelper.m in Sources */,
|
||||||
9DD565BE23EC45080011FC4A /* AppDelegate.m in Sources */,
|
9DD565BE23EC45080011FC4A /* AppDelegate.m in Sources */,
|
||||||
9DD565CF23EC450A0011FC4A /* main.m in Sources */,
|
9DD565CF23EC450A0011FC4A /* main.m in Sources */,
|
||||||
);
|
);
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
#import "AppDelegate.h"
|
#import "AppDelegate.h"
|
||||||
#import "ViewController.h"
|
#import "ViewController.h"
|
||||||
|
#import "FINExtensionHelper.h"
|
||||||
|
|
||||||
#import <FinApplet/FinApplet.h>
|
#import <FinApplet/FinApplet.h>
|
||||||
|
|
||||||
|
@ -28,6 +29,8 @@
|
||||||
|
|
||||||
[[FATClient sharedClient] initWithConfig:config error:nil];
|
[[FATClient sharedClient] initWithConfig:config error:nil];
|
||||||
|
|
||||||
|
[FINExtensionHelper registerCustomApis];
|
||||||
|
|
||||||
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
||||||
self.window.backgroundColor = [UIColor whiteColor];
|
self.window.backgroundColor = [UIColor whiteColor];
|
||||||
self.window.rootViewController = [[ViewController alloc] init];
|
self.window.rootViewController = [[ViewController alloc] init];
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
//
|
||||||
|
// FINExtensionHelper.h
|
||||||
|
// finclip_custom_demo
|
||||||
|
//
|
||||||
|
// Created by Haley on 2020/12/3.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface FINExtensionHelper : NSObject
|
||||||
|
|
||||||
|
+ (void)registerCustomApis;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
//
|
||||||
|
// FINExtensionHelper.m
|
||||||
|
// finclip_custom_demo
|
||||||
|
//
|
||||||
|
// Created by Haley on 2020/12/3.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "FINExtensionHelper.h"
|
||||||
|
#import <FinApplet/FinApplet.h>
|
||||||
|
|
||||||
|
@implementation FINExtensionHelper
|
||||||
|
|
||||||
|
+ (void)registerCustomApis
|
||||||
|
{
|
||||||
|
[[FATClient sharedClient] registerExtensionApi:@"onNative" handle:^(id param, FATExtensionApiCallback callback) {
|
||||||
|
|
||||||
|
NSString *inputText = @"床前明月光,疑是地上霜。举头望明月,低头思故乡。";
|
||||||
|
callback(FATExtensionCodeSuccess, @{@"text":inputText});
|
||||||
|
}];
|
||||||
|
|
||||||
|
[[FATClient sharedClient] fat_registerWebApi:@"user_define_native" handle:^(id param, FATExtensionApiCallback callback) {
|
||||||
|
|
||||||
|
NSString *inputText = @"鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波。";
|
||||||
|
callback(FATExtensionCodeSuccess, @{@"text":inputText});
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -9,7 +9,11 @@
|
||||||
#import "ViewController.h"
|
#import "ViewController.h"
|
||||||
#import <FinApplet/FinApplet.h>
|
#import <FinApplet/FinApplet.h>
|
||||||
|
|
||||||
@interface ViewController ()
|
@interface ViewController ()<UITableViewDelegate, UITableViewDataSource>
|
||||||
|
|
||||||
|
@property (nonatomic, strong) UITableView *tableView;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) NSMutableArray *appletList;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@ -19,53 +23,76 @@
|
||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
// Do any additional setup after loading the view.
|
// Do any additional setup after loading the view.
|
||||||
|
|
||||||
UIButton *btn1 = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 200, 40)];
|
[self p_loadData];
|
||||||
[btn1 setTitle:@"打开绘图小程序" forState:UIControlStateNormal];
|
|
||||||
[btn1 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
|
||||||
[btn1 setBackgroundColor:[UIColor grayColor]];
|
|
||||||
[btn1 addTarget:self action:@selector(onCanvasClick:) forControlEvents:UIControlEventTouchUpInside];
|
|
||||||
|
|
||||||
UIButton *btn2 = [[UIButton alloc] initWithFrame:CGRectMake(100, 150, 200, 40)];
|
[self p_initSubViews];
|
||||||
[btn2 setTitle:@"打开官方小程序" forState:UIControlStateNormal];
|
|
||||||
[btn2 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
|
||||||
[btn2 setBackgroundColor:[UIColor grayColor]];
|
|
||||||
[btn2 addTarget:self action:@selector(onDemoClick:) forControlEvents:UIControlEventTouchUpInside];
|
|
||||||
|
|
||||||
UIButton *btn3 = [[UIButton alloc] initWithFrame:CGRectMake(100, 200, 200, 40)];
|
|
||||||
[btn3 setTitle:@"我的对账单" forState:UIControlStateNormal];
|
|
||||||
[btn3 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
|
||||||
[btn3 setBackgroundColor:[UIColor grayColor]];
|
|
||||||
[btn3 addTarget:self action:@selector(onProfileClick:) forControlEvents:UIControlEventTouchUpInside];
|
|
||||||
|
|
||||||
[self.view addSubview:btn1];
|
|
||||||
[self.view addSubview:btn2];
|
|
||||||
[self.view addSubview:btn3];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)onCanvasClick:(id)sender
|
- (void)p_initSubViews
|
||||||
{
|
{
|
||||||
NSString *appId = @"5facb3a52dcbff00017469bd";
|
CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;
|
||||||
// 打开小程序
|
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
|
||||||
[[FATClient sharedClient] startRemoteApplet:appId startParams:nil InParentViewController:self completion:^(BOOL result, NSError *error) {
|
|
||||||
NSLog(@"result:%d---error:%@", result, error);
|
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 44)];
|
||||||
|
headerView.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:1];
|
||||||
|
|
||||||
|
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, screenWidth, screenHeight) style:UITableViewStylePlain];
|
||||||
|
self.tableView.tableHeaderView = headerView;
|
||||||
|
self.tableView.tableFooterView = [UIView new];
|
||||||
|
self.tableView.delegate = self;
|
||||||
|
self.tableView.dataSource = self;
|
||||||
|
[self.view addSubview:self.tableView];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)p_loadData
|
||||||
|
{
|
||||||
|
NSDictionary *startParams = nil;
|
||||||
|
self.appletList = [[NSMutableArray alloc] init];
|
||||||
|
|
||||||
|
[self.appletList addObject:@{@"appId":@"5facb3a52dcbff00017469bd",@"title":@"绘图小程序"}];
|
||||||
|
[self.appletList addObject:@{@"appId":@"5fa214a29a6a7900019b5cc1",@"title":@"官方示例小程序"}];
|
||||||
|
[self.appletList addObject:@{@"appId":@"5fa215459a6a7900019b5cc3",@"title":@"对账单"}];
|
||||||
|
// FAT接口测试小程序
|
||||||
|
[self.appletList addObject:@{@"appId":@"5fc8934aefb8c600019e9747",@"title":@"自定义小程序API示例"}];
|
||||||
|
|
||||||
|
startParams = @{
|
||||||
|
@"path" : @"/pages/webview/webview"
|
||||||
|
};
|
||||||
|
[self.appletList addObject:@{@"appId":@"5fc8934aefb8c600019e9747",@"title":@"自定义H5 API示例", @"startParams":startParams}];
|
||||||
|
[self.tableView reloadData];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - UITableViewDataSource
|
||||||
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||||
|
{
|
||||||
|
return self.appletList.count;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||||
|
{
|
||||||
|
static NSString *identifer = @"identifer";
|
||||||
|
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifer];
|
||||||
|
if (cell == nil) {
|
||||||
|
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifer];
|
||||||
|
}
|
||||||
|
|
||||||
|
NSDictionary *dict = self.appletList[indexPath.row];
|
||||||
|
cell.textLabel.text = dict[@"title"];
|
||||||
|
|
||||||
|
return cell;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||||
|
{
|
||||||
|
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||||
|
|
||||||
|
NSDictionary *dict = self.appletList[indexPath.row];
|
||||||
|
NSString *appId = dict[@"appId"];
|
||||||
|
NSDictionary *startParams = dict[@"startParams"];
|
||||||
|
|
||||||
|
[[FATClient sharedClient] startRemoteApplet:appId startParams:startParams InParentViewController:self completion:^(BOOL result, NSError *error) {
|
||||||
|
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)onDemoClick:(id)sender {
|
|
||||||
|
|
||||||
NSString *appId = @"5fa214a29a6a7900019b5cc1";
|
|
||||||
// 打开小程序
|
|
||||||
[[FATClient sharedClient] startRemoteApplet:appId startParams:nil InParentViewController:self completion:^(BOOL result, NSError *error) {
|
|
||||||
NSLog(@"result:%d---error:%@", result, error);
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)onProfileClick:(id)sender {
|
|
||||||
|
|
||||||
NSString *appId = @"5fa215459a6a7900019b5cc3";
|
|
||||||
// 打开小程序
|
|
||||||
[[FATClient sharedClient] startRemoteApplet:appId startParams:nil InParentViewController:self completion:^(BOOL result, NSError *error) {
|
|
||||||
NSLog(@"result:%d---error:%@", result, error);
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Reference in New Issue