5 Star 7 Fork 3

FinClip / finclip-android-demo

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

FinClip Android DEMO

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

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


🤔 FinClip 是什么?

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

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

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

⚙️ 操作步骤

第一步 配置 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"
            }
        }
    }
}

第二步 在 gradle 中依赖 SDK

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

第三步 配置混淆规则

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

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

第四步 SDK初始化

我们强烈建议在 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 KEYSDK SECRET 可以从 FinClip 获取,点 这里 注册账号;
  • 进入平台后,在「应用管理」页面添加你自己的包名后,点击「复制」即可获得 key\secret\apisever 字段;
  • apiServerapiPrefix 是固定字段,请直接参考本 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 进行开发与体验时,常见的问题与指引信息

☎️ 联系我们

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

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

Stargazers

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

Forkers

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

About

FinClip 安卓运行环境,让小程序在安卓应用中无缝运行 / Android DEMO for FinClip expand collapse
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
1
https://gitee.com/finclip/android-demo.git
git@gitee.com:finclip/android-demo.git
finclip
android-demo
finclip-android-demo
master

Search