1
0
Fork 0
小程序引擎 PhizClip 安卓运行环境,让小程序在安卓应用中无缝运行 / Android DEMO for PhizClip
 
 
Go to file
xiaoyu 9113253330 调整注释 2020-12-03 16:53:31 +08:00
.idea initial commit 2020-03-07 20:26:34 +08:00
app 调整注释 2020-12-03 16:53:31 +08:00
gradle/wrapper initial commit 2020-03-07 20:26:34 +08:00
.gitignore initial commit 2020-03-07 20:26:34 +08:00
README.md Update README.md 2020-03-15 19:21:15 +08:00
build.gradle 集成最新稳定版sdk 2020-09-03 11:49:35 +08:00
gradle.properties initial commit 2020-03-07 20:26:34 +08:00
gradlew initial commit 2020-03-07 20:26:34 +08:00
gradlew.bat initial commit 2020-03-07 20:26:34 +08:00
settings.gradle initial commit 2020-03-07 20:26:34 +08:00

README.md

五行代码让APP运行小程序

1、在工程的build.gradle中需要配置的内容

在工程的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"
            }
        }
    }
}

2、在gradle中依赖SDK

implementation 'com.finogeeks.lib:finapplet:2.0.77'

3、 配置混淆规则

集成SDK之后为了避免SDK中部分不能被混淆的代码被混淆需要在工程的混淆规则配置文件中增加以下配置

-keep class com.finogeeks.** {*;}

4、SDK初始化

我们强烈建议在Application中对SDK进行初始化初始化SDK需要传入的各项参数如下

FinAppConfig config = new FinAppConfig.Builder()
        .setAppKey("SDKKEY")
	      .setAppSecret("SECRET")
        .setApiUrl("https://mp.finogeeks.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;
}
  • SDKKEYSecret 可以从免费一键部署的社区版的管理后台获取。
  • apiServer 为这里是小程序生态后端的服务地址也就是前文所输入的IP:端口
  • 小程序id 为在管理后台上架的小程序appid
  • 上述的参数可以在前文服务器部署的后台界面上获取,亦可以在没有部署服务端的情况下在https://mp.finogeeks.com快速注册,免费获取。
  • 具体的操作方法请参考 Android集成