FinClip Android DEMO
本项目提供在 Android 环境中运行小程序的 DEMO 样例
有没有想过,开发好的微信小程序能放在自己的 APP 里直接运行,只需要开发一次小程序,就能在不同的应用中打开它,是不是很不可思议?
有没有试过,在自己的 APP 中引入一个 SDK ,应用中不仅可以打开小程序,还能自定义小程序接口,修改小程序样式,是不是觉得更不可思议?
这就是 FinClip ,就是有这么多不可思议!
在工程的 build.gradle
中添加 maven 仓库的地址:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:3.5.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.60"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
maven {
url "https://gradle.finogeeks.club/repository/applet/"
credentials {
username "applet"
password "123321"
}
}
}
}
implementation 'com.finogeeks.lib:finapplet:+'
集成 SDK 之后,为了避免 SDK 中部分不能被混淆的代码被混淆,需要在工程的混淆规则配置文件中增加以下配置:
-keep class com.finogeeks.** {*;}
我们强烈建议在 Application
中对SDK进行初始化,初始化 SDK 需要传入的各项参数如下:
FinAppConfig config = new FinAppConfig.Builder()
.setAppKey("SDKKEY")
.setAppSecret("SECRET")
.setApiUrl("https://api.finclip.com")
.setApiPrefix("/api/v1/mop/")
.setGlideWithJWT(false)
.build();
FinCallback<Object> callback = new FinCallback<Object>() {
@Override
public void onSuccess(Object result) {
// SDK初始化成功
}
@Override
public void onError(int code, String error) {
// SDK初始化失败
Toast.makeText(AppletApplication.this, "SDK初始化失败", Toast.LENGTH_SHORT).show();
}
@Override
public void onProgress(int status, String error) {
}
};
FinAppClient.INSTANCE.init(this, config, callback);
SDK 采用多进程机制实现,每个小程序运行在独立的进程中,即一个小程序对应一个进程。在初始化SDK时,要特别注意的一点是:小程序进程在创建的时候,不需要执行任何初始化操作,即使是小程序SDK的初始化,也不需要在小程序进程中执行。
举个例子🌰
应用使用了一些第三方库,这些库需要在应用启动时先初始化,那么在 Application 中执行初始化时,只有当前进程为宿主进程时才需要初始化这些第三方库,小程序进程是不需要初始化这些库的。
因此,在初始化SDK之前,一定要判断当前进程是哪一个进程,如果是小程序进程,就不进行任何操作了:
if (FinAppClient.INSTANCE.isFinAppProcess(this)) {
return;
}
FinAppClient.INSTANCE.getAppletApiManager().startApplet(this, "appid");
- SDK KEY 和 SDK SECRET 可以从 FinClip 获取,点 这里 注册账号;
- 进入平台后,在「应用管理」页面添加你自己的包名后,点击「复制」即可获得 key\secret\apisever 字段;
- apiServer 和 apiPrefix 是固定字段,请直接参考本 DEMO ;
- 小程序 ID 是管理后台上架的小程序 APP ID,需要在「小程序管理」中创建并在「应用管理」中关联;
小程序 ID 与 微信小程序ID 不一样哦!(这里是特指 FinClip 平台的 ID )
点击这里 查看 Android 快速集成文档
.
├─.github
│
├─.idea 由IDE自动生成,无需关注
│
├─app 项目源码主目录
│ │
│ │ build.gradle 应用构建配置
│ │
│ │ proguard-rules.pro 混淆配置
│ │
│ ├─release 构建应用生成的apk目录
│ │
│ └─src
│ ├─androidTest 单元测试目录,由IDE自动生成,无需关注
│ │
│ ├─main 应用源码主目录
│ │ │ AndroidManifest.xml 应用清单文件
│ │ │
│ │ ├─java 应用源码目录
│ │ │
│ │ └─res 资源文件目录
│ │ ├─drawable darwable资源目录
│ │ │
│ │ ├─drawable-v24 darwable资源目录
│ │ │
│ │ ├─layout 布局文件目录
│ │ │
│ │ ├─mipmap-anydpi-v26 图片资源目录
│ │ │
│ │ ├─mipmap-hdpi 图片资源目录
│ │ │
│ │ ├─mipmap-mdpi 图片资源目录
│ │ │
│ │ ├─mipmap-xhdpi 图片资源目录
│ │ │
│ │ ├─mipmap-xxhdpi 图片资源目录
│ │ │
│ │ ├─mipmap-xxxhdpi 图片资源目录
│ │ │
│ │ └─values 各项资源值配置目录
│ │
│ └─test 单元测试目录,由IDE自动生成,无需关注
│
└─gradle gradle版本配置目录,一般情况下无需关注
以下内容是您在 FinClip 进行开发与体验时,常见的问题与指引信息