• Stars
    star
    234
  • Rank 171,630 (Top 4 %)
  • Language
    Java
  • Created over 4 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

More Repositories

1

finclip-ios-demo

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

Ligase

Ligase is a Golang-based implementation of Matrix homeserver, powered by finogeeks https://www.finogeeks.com/Finchat
Go
141
star
3

finclip-flutter-demo

FinClip Flutter 运行环境,让小程序在 Flutter 应用中无缝运行 / Flutter DEMO for FinClip
Dart
97
star
4

mop-flutter-sdk

FinClip 小程序 Flutter SDK 插件,用于在 Flutter 应用中运行小程序 / Flutter SDK for FinClip
Dart
93
star
5

miniprogram-demo

FinClip 小程序演示,用于测试小程序中相关 API 与组件能力 / Mini-Program DEMO for FinClip
JavaScript
60
star
6

fino-applet

Finchat 小程序核心原理 / FinClip Mini-Program Core Principle
Objective-C
46
star
7

finclip-react-native-demo

FinClip RN 运行环境,让小程序在 RN 应用中无缝运行 / ReactNative DEMO for FinClip
JavaScript
45
star
8

FinClipSDK

FinClip 核心 SDK 插件,用于小程序基础的 API 与组件调用 / Core SDK for FinClip
Objective-C
40
star
9

finclip-desktop-demo

FinClip 桌面版运行环境,让小程序在桌面平台上无缝运行 / Desktop DEMO for FinClip
25
star
10

react-native-mopsdk

FinClip React SDK 插件,用于 RN 环境中 API 与组件调用 / React SDK for FinClip
Objective-C
17
star
11

finclip-uniapp-demo

FinClip Uniapp 运行环境,让小程序在 Uniapp 应用中无缝运行 / Uniapp DEMO for FinClip
Objective-C
8
star
12

FinClip-2022-Hackthon-Challenge

2022 年 FinClip 黑客马拉松活动
8
star
13

FinChat-Web

Finchat 网页端示例代码 / FinChat Web Demo
Vue
7
star
14

finclip-ops-docs

FinClip 运维文档,可查看推荐架构与运维相关能力 / DevOps for FinClip
JavaScript
5
star
15

finclip-win32-demo

FinClip Windows 运行环境,让小程序在 Windows 平台上无缝运行 / Win32 DEMO for FinClip
C
4
star
16

wechat-auth-page

FinClip 微信登录授权页面
3
star
17

FinClipExtSDK

FinClip 扩展 SDK 插件,用于与权限相关的 API 与组件调用 / Extension SDK for FinClip
Objective-C
3
star
18

webrtc-miniprogram-demo

finclip webrtc 小程序 demo
JavaScript
2
star
19

FinChat-Docs

FinChat 开发文档 / Finchat Development Document
2
star
20

FinClipWeChatSDK-Android

FinClipWeChatSDK-Android
Kotlin
2
star
21

Agora-Miniapp-Tutorial

Hello world for Agora SDK running in FinClip
JavaScript
2
star
22

FinChat-Android

Finchat 安卓端示例代码 / FinChat Android Demo
Kotlin
2
star
23

finclip_unity_plugin_demo

unity 插件demo
1
star
24

auth_demo_android

FinClip 小程序授权登录演示项目,用于在小程序中获取微信用户身份登录 / Wechat Authentication DEMO for FinClip
Java
1
star
25

FinAppletWebRTCSDK

FinClip webRTC 插件,用于webRTC的 API 与组件调用
Smarty
1
star
26

applet-payment-demo

FinClip 小程序支付 DEMO / Payment DEMO for FinClip
JavaScript
1
star
27

FinAppletBDMapSDK

FinClip 百度地图 插件,用于地图相关的 API 与组件调用
Smarty
1
star
28

FinChat-Robot-Demo

1
star
29

pay-android-demo

FinClip 小程序支付功能演示项目,用于在小程序中使用微信支付 / Wepay DEMO for FinClip
Java
1
star
30

miniprogram-zed-extension

Scheme
1
star