finclip-ios-demo icon indicating copy to clipboard operation
finclip-ios-demo copied to clipboard

小程序容器 FinClip 苹果运行环境,让小程序在苹果应用中无缝运行 / iOS DEMO for FinClip

FinClip iOS DEMO

本项目提供在 iOS 环境中运行小程序的 DEMO 样例

👉 https://www.finclip.com/ 👈


🤔 FinClip 是什么?

有没有想过,开发好的微信小程序能放在自己的 APP 里直接运行,只需要开发一次小程序,就能在不同的应用中打开它,是不是很不可思议?

有没有试过,在自己的 APP 中引入一个 SDK ,应用中不仅可以打开小程序,还能自定义小程序接口,修改小程序样式,是不是觉得更不可思议?

这就是 FinClip ,就是有这么多不可思议!

⚙️ 操作步骤

第一步 修改 Podfile 文件,增加 FinApplet 依赖

source 'https://github.com/CocoaPods/Specs.git'
pod 'FinApplet'

第二步 完成SDK初始化

在工程的 AppDelegate 中的以下方法中,调用 SDK 的初始化方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
	
	// 需要添加至App中的代码--start
    NSMutableArray *storeArrayM = [NSMutableArray array];
    FATStoreConfig *storeConfig = [[FATStoreConfig alloc] init];
    storeConfig.sdkKey = @"您的sdkKey信息";
    storeConfig.sdkSecret = @"您的sdkSecret信息";
    storeConfig.apiServer = @"服务器域名";
    storeConfig.apmServer = @"apm统计事件的域名";
    [storeArrayM addObject:storeConfig];
    
    FATConfig *config = [FATConfig configWithStoreConfigs:storeArrayM];
    [[FATClient sharedClient] initWithConfig:config error:nil];
    // 需要添加至App中的代码--end
    
    return YES;
}

第三步打开小程序

NSString *appId = @"小程序id";
// 打开小程序
[[FATClient sharedClient] startRemoteApplet:appId startParams:nil InParentViewController:self completion:^(BOOL result, NSError *error) {
    NSLog(@"result:%d---error:%@", result, error);
}];
  • SDK KEYSDK SECRET 可以从 FinClip 获取,点 这里 注册账号;
  • 进入平台后,在「应用管理」页面添加你自己的包名后,点击「复制」即可获得 key\secret\apisever 字段;
  • apiServerapiPrefix 是固定字段,请直接参考本 DEMO ;
  • 小程序 ID 是管理后台上架的小程序 APP ID,需要在「小程序管理」中创建并在「应用管理」中关联;

小程序 ID 与 微信小程序ID 不一样哦!(这里是特指 FinClip 平台的 ID )

📋 集成文档

点击这里 查看 iOS 快速集成文档

📘 目录结构

.
├── LICENSE
├── Podfile 依赖的SDK配置文件
├── README.md
├── demo
│   ├── AppDelegate.h
│   ├── AppDelegate.m
│   ├── Assets.xcassets 图片资源
│   ├── Base.lproj
│   │   └── LaunchScreen.storyboard
│   ├── Common
│   │   ├── FINCustomMenuModel.h  自定义更多视图里的菜单对象
│   │   ├── FINCustomMenuModel.m  自定义更多视图里的菜单对象
│   │   ├── FINDemoClientHelper.h  小程序SDK的代理方法实现类
│   │   ├── FINDemoClientHelper.m  小程序SDK的代理方法实现类
│   │   ├── FINExtensionHelper.h   注入自定义api的实现类
│   │   └── FINExtensionHelper.m   注入自定义api的实现类
│   ├── Info.plist  工程配置
│   ├── MainViewController.h   首页
│   ├── MainViewController.m   首页
│   ├── Scan  扫码功能
│   │   ├── Controller
│   │   │   ├── FCQRCodeScanViewController.h
│   │   │   └── FCQRCodeScanViewController.m
│   │   └── View
│   │       ├── FCQRScanView.h
│   │       └── FCQRScanView.m
│   ├── demo.entitlements
│   ├── demo.plist  demo工程小程序列表
│   ├── finosprite.plist finosprite工程小程序列表
│   ├── main.m
│   └── servers.plist  初始化SDK的服务器列表
├── demo.xcodeproj

📋 Demo功能介绍

微信登录

微信登录是通过自定义api注入login来实现的,需要依赖微信开放SDK。

  • 首先注册微信SDK的Key和universallink。
  • 通过自定义api,注册login。可参考FINExtensionHelper 中 注册的login的逻辑。

微信支付

微信支付也是通过自定义api注入requestPayment来实现的,需要依赖微信开放SDK。

  • 首先注册微信SDK的Key和universallink。
  • 通过自定义api,注册requestPayment。可参考FINExtensionHelper 中 注册的requestPayment的逻辑。

百度地图

小程序中的Map组件默认是使用系统的Map以及相关api来实现的。您也可以选择使用百度地图的Map组件。我们在Demo里已经添加了FinAppletBDMap的依赖,它是我们基于百度地图做的扩展SDK。

如果要使用百度地图版本的Map组件,则只需要在初始化FinClip SDK成功后,调用[FATBDMapComponent setBDMapAppKey:@"申请的key"];即可。 可参考AppDelegateapplication:didFinishLaunchingWithOptions:方法里的注册百度地图。

高德地图

同理,如果选择使用高德地图的Map组件。我们在Demo里也已经添加了FinAppletGDMap的依赖,它是我们基于高德地图做的扩展SDK。

如果要使用高德地图版本的Map组件,则只需要在初始化FinClip SDK成功后,调用[FATGDMapComponent setGDMapAppKey:@"申请的key"];即可。 可参考AppDelegateapplication:didFinishLaunchingWithOptions:方法里的注册高德地图。

🔗 常用链接

以下内容是您在 FinClip 进行开发与体验时,常见的问题与指引信息

☎️ 联系我们

微信扫描下面二维码,关注官方公众号 「凡泰极客」,获取更多精彩内容。

微信扫描下面二维码,加入官方微信交流群,获取更多精彩内容。

Stargazers

Stargazers repo roster for @finogeeks/finclip-ios-demo

Forkers

Forkers repo roster for @finogeeks/finclip-ios-demo