commit
861bab0492
|
@ -91,6 +91,6 @@ kapt {
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||||
implementation 'com.finogeeks.lib:finapplet:2.41.0-alpha20230408v01'
|
implementation 'com.finogeeks.lib:finapplet:2.40.4-dev20230417v01'
|
||||||
implementation 'com.finogeeks.mop:plugins:2.41.0-alpha20230408v01'
|
implementation 'com.finogeeks.mop:plugins:2.40.4-dev20230417v01'
|
||||||
}
|
}
|
|
@ -12,7 +12,7 @@ import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.finogeeks.lib.applet.client.FinAppProcessClient;
|
import com.finogeeks.lib.applet.client.FinAppProcessClient;
|
||||||
import com.finogeeks.lib.applet.client.FinAppClient;
|
import com.finogeeks.lib.applet.client.FinAppClient;
|
||||||
import com.finogeeks.lib.applet.client.FinAppTrace;
|
import com.finogeeks.lib.applet.modules.log.FLog;
|
||||||
import com.finogeeks.lib.applet.interfaces.FinCallback;
|
import com.finogeeks.lib.applet.interfaces.FinCallback;
|
||||||
import com.finogeeks.lib.applet.page.view.moremenu.MoreMenuItem;
|
import com.finogeeks.lib.applet.page.view.moremenu.MoreMenuItem;
|
||||||
import com.finogeeks.lib.applet.page.view.moremenu.MoreMenuType;
|
import com.finogeeks.lib.applet.page.view.moremenu.MoreMenuType;
|
||||||
|
@ -58,7 +58,7 @@ public class AppletHandlerModule extends BaseApi {
|
||||||
public void invoke(String event, Map param, ICallback callback) {
|
public void invoke(String event, Map param, ICallback callback) {
|
||||||
|
|
||||||
if ("getPhoneNumberResult".equals(event)) {
|
if ("getPhoneNumberResult".equals(event)) {
|
||||||
FinAppTrace.d("AppletHandlerModule", "getPhoneNumberResult");
|
FLog.d("AppletHandlerModule", "getPhoneNumberResult");
|
||||||
getPhoneNumberResult(event, param, callback);
|
getPhoneNumberResult(event, param, callback);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -203,13 +203,13 @@ public class AppletHandlerModule extends BaseApi {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
||||||
FinAppTrace.e(TAG, "getCustomMenus errorCode : " + errorCode + " errorMessage : " + errorMessage);
|
FLog.e(TAG, "getCustomMenus errorCode : " + errorCode + " errorMessage : " + errorMessage);
|
||||||
latch.countDown();
|
latch.countDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notImplemented() {
|
public void notImplemented() {
|
||||||
FinAppTrace.d(TAG, "getCustomMenus notImplemented");
|
FLog.d(TAG, "getCustomMenus notImplemented");
|
||||||
latch.countDown();
|
latch.countDown();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -219,7 +219,7 @@ public class AppletHandlerModule extends BaseApi {
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
FinAppTrace.d(TAG, "getRegisteredMoreMenuItems moreMenuItems : " + moreMenuItems + " size : " + moreMenuItems.size());
|
FLog.d(TAG, "getRegisteredMoreMenuItems moreMenuItems : " + moreMenuItems + " size : " + moreMenuItems.size());
|
||||||
return moreMenuItems;
|
return moreMenuItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,19 +234,19 @@ public class AppletHandlerModule extends BaseApi {
|
||||||
channel.invokeMethod("extensionApi:onCustomMenuClick", params, new MethodChannel.Result() {
|
channel.invokeMethod("extensionApi:onCustomMenuClick", params, new MethodChannel.Result() {
|
||||||
@Override
|
@Override
|
||||||
public void success(Object result) {
|
public void success(Object result) {
|
||||||
FinAppTrace.d(TAG, "onCustomMenuClick success");
|
FLog.d(TAG, "onCustomMenuClick success");
|
||||||
iAppletCallback.onSuccess(null);
|
iAppletCallback.onSuccess(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
||||||
FinAppTrace.e(TAG, "onCustomMenuClick errorCode : " + errorCode + " errorMessage : " + errorMessage);
|
FLog.e(TAG, "onCustomMenuClick errorCode : " + errorCode + " errorMessage : " + errorMessage);
|
||||||
iAppletCallback.onFailure();
|
iAppletCallback.onFailure();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notImplemented() {
|
public void notImplemented() {
|
||||||
FinAppTrace.d(TAG, "onCustomMenuClick notImplemented");
|
FLog.d(TAG, "onCustomMenuClick notImplemented");
|
||||||
iAppletCallback.onFailure();
|
iAppletCallback.onFailure();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -303,20 +303,20 @@ public class AppletHandlerModule extends BaseApi {
|
||||||
channel.invokeMethod("extensionApi:getPhoneNumber", params, new MethodChannel.Result() {
|
channel.invokeMethod("extensionApi:getPhoneNumber", params, new MethodChannel.Result() {
|
||||||
@Override
|
@Override
|
||||||
public void success(Object result) {
|
public void success(Object result) {
|
||||||
FinAppTrace.d(TAG, "onCustomMenuClick success");
|
FLog.d(TAG, "onCustomMenuClick success");
|
||||||
// callback.onSuccess(null);
|
// callback.onSuccess(null);
|
||||||
phoneNumberCallback = callback;
|
phoneNumberCallback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
||||||
FinAppTrace.e(TAG, "onCustomMenuClick errorCode : " + errorCode + " errorMessage : " + errorMessage);
|
FLog.e(TAG, "onCustomMenuClick errorCode : " + errorCode + " errorMessage : " + errorMessage);
|
||||||
callback.onFailure();
|
callback.onFailure();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notImplemented() {
|
public void notImplemented() {
|
||||||
FinAppTrace.d(TAG, "onCustomMenuClick notImplemented");
|
FLog.d(TAG, "onCustomMenuClick notImplemented");
|
||||||
callback.onFailure();
|
callback.onFailure();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -368,7 +368,7 @@ public class AppletHandlerModule extends BaseApi {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getPhoneNumberResult(String event, Map param, ICallback callback) {
|
private void getPhoneNumberResult(String event, Map param, ICallback callback) {
|
||||||
FinAppTrace.d("AppletHandlerModule", "getPhoneNumberResult,param:" + param.toString());
|
FLog.d("AppletHandlerModule", "getPhoneNumberResult,param:" + param.toString());
|
||||||
callback.onSuccess(null);
|
callback.onSuccess(null);
|
||||||
if (phoneNumberCallback != null) {
|
if (phoneNumberCallback != null) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import android.os.Looper;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.finogeeks.lib.applet.client.FinAppClient;
|
import com.finogeeks.lib.applet.client.FinAppClient;
|
||||||
import com.finogeeks.lib.applet.client.FinAppTrace;
|
import com.finogeeks.lib.applet.modules.log.FLog;
|
||||||
import com.finogeeks.mop.api.BaseApi;
|
import com.finogeeks.mop.api.BaseApi;
|
||||||
import com.finogeeks.mop.interfaces.ICallback;
|
import com.finogeeks.mop.interfaces.ICallback;
|
||||||
import com.finogeeks.mop.service.MopPluginService;
|
import com.finogeeks.mop.service.MopPluginService;
|
||||||
|
@ -57,7 +57,7 @@ public class ExtensionApiModule extends BaseApi {
|
||||||
@Override
|
@Override
|
||||||
public void success(Object result) {
|
public void success(Object result) {
|
||||||
String json = GsonUtil.gson.toJson(result);
|
String json = GsonUtil.gson.toJson(result);
|
||||||
FinAppTrace.d(ExtensionApiModule.TAG, "channel invokeMethod:" + name
|
FLog.d(ExtensionApiModule.TAG, "channel invokeMethod:" + name
|
||||||
+ " success, result=" + result + ", json=" + json);
|
+ " success, result=" + result + ", json=" + json);
|
||||||
JSONObject ret = null;
|
JSONObject ret = null;
|
||||||
if (json != null && !json.equals("null")) {
|
if (json != null && !json.equals("null")) {
|
||||||
|
@ -80,7 +80,7 @@ public class ExtensionApiModule extends BaseApi {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
||||||
FinAppTrace.e(ExtensionApiModule.TAG, "channel invokeMethod:" + name
|
FLog.e(ExtensionApiModule.TAG, "channel invokeMethod:" + name
|
||||||
+ " error, errorCode=" + errorCode
|
+ " error, errorCode=" + errorCode
|
||||||
+ ", errorMessage=" + errorMessage
|
+ ", errorMessage=" + errorMessage
|
||||||
+ ", errorDetails=" + errorDetails);
|
+ ", errorDetails=" + errorDetails);
|
||||||
|
@ -114,7 +114,7 @@ public class ExtensionApiModule extends BaseApi {
|
||||||
@Override
|
@Override
|
||||||
public void success(Object result) {
|
public void success(Object result) {
|
||||||
String json = GsonUtil.gson.toJson(result);
|
String json = GsonUtil.gson.toJson(result);
|
||||||
FinAppTrace.d(ExtensionApiModule.TAG, "channel invokeMethod:" + name
|
FLog.d(ExtensionApiModule.TAG, "channel invokeMethod:" + name
|
||||||
+ " success, result=" + result + ", json=" + json);
|
+ " success, result=" + result + ", json=" + json);
|
||||||
JSONObject ret = null;
|
JSONObject ret = null;
|
||||||
if (json != null && !json.equals("null")) {
|
if (json != null && !json.equals("null")) {
|
||||||
|
@ -137,7 +137,7 @@ public class ExtensionApiModule extends BaseApi {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
public void error(String errorCode, String errorMessage, Object errorDetails) {
|
||||||
FinAppTrace.e(ExtensionApiModule.TAG, "channel invokeMethod:" + name
|
FLog.e(ExtensionApiModule.TAG, "channel invokeMethod:" + name
|
||||||
+ " error, errorCode=" + errorCode
|
+ " error, errorCode=" + errorCode
|
||||||
+ ", errorMessage=" + errorMessage
|
+ ", errorMessage=" + errorMessage
|
||||||
+ ", errorDetails=" + errorDetails);
|
+ ", errorDetails=" + errorDetails);
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.finogeeks.mop_example;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.finogeeks.lib.applet.modules.appletloadinglayout.IFinAppletLoadingPage;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
public class CustomLoadingPage extends IFinAppletLoadingPage {
|
||||||
|
public CustomLoadingPage(@NonNull Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFailureLayoutRes() {
|
||||||
|
return R.layout.layout_custom_loading_page_failure;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLoadingLayoutRes() {
|
||||||
|
return R.layout.layout_custom_loading_page;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingFailure(@NonNull String s) {
|
||||||
|
((TextView)getFailureLayout().findViewById(R.id.failMsg)).setText(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingFailure(@NonNull String s, @NonNull String s1) {
|
||||||
|
((TextView)getFailureLayout().findViewById(R.id.failTitle)).setText(s);
|
||||||
|
((TextView)getFailureLayout().findViewById(R.id.failMsg)).setText(s1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate(@NonNull String s, @NonNull String s1) {
|
||||||
|
((TextView)getLoadingLayout().findViewById(R.id.loadingTitle)).setText(s);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,8 @@
|
||||||
package com.finogeeks.mop_example;
|
package com.finogeeks.mop_example;
|
||||||
|
|
||||||
|
import android.app.AlertDialog;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
// import android.support.annotation.NonNull;
|
// import android.support.annotation.NonNull;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -27,11 +29,16 @@ public class MainApplication extends Application {
|
||||||
FinAppProcessClient.INSTANCE.getAppletProcessApiManager().setAppletProcessHandler(new IAppletProcessHandler(){
|
FinAppProcessClient.INSTANCE.getAppletProcessApiManager().setAppletProcessHandler(new IAppletProcessHandler(){
|
||||||
@Override
|
@Override
|
||||||
public boolean onNavigationBarMoreButtonClicked(@NonNull Context context, @NonNull String appId) {
|
public boolean onNavigationBarMoreButtonClicked(@NonNull Context context, @NonNull String appId) {
|
||||||
// 返回true表示要自行处理更多视图;返回false表示使用默认的更多视图
|
|
||||||
|
|
||||||
// 在这里弹出自定义的更多视图
|
// 在这里弹出自定义的更多视图
|
||||||
|
new AlertDialog.Builder(context)
|
||||||
|
.setTitle("更多视图")
|
||||||
|
.setMessage(appId)
|
||||||
|
.setPositiveButton("菜单", null)
|
||||||
|
.setNegativeButton("取消", null)
|
||||||
|
.show();
|
||||||
|
|
||||||
return false;
|
// 返回true表示要自行处理更多视图;返回false表示使用默认的更多视图
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center">
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/loadingWaiting"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Widget.AppCompat.ProgressBar"
|
||||||
|
/>
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/loadingTitle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center"
|
||||||
|
android:padding="24dp">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/failTitle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||||
|
/>
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/failMsg"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
|
@ -1,11 +1,11 @@
|
||||||
PODS:
|
PODS:
|
||||||
- FinApplet (2.40.1)
|
- FinApplet (2.40.3)
|
||||||
- FinAppletExt (2.40.1):
|
- FinAppletExt (2.40.3):
|
||||||
- FinApplet (= 2.40.1)
|
- FinApplet (= 2.40.3)
|
||||||
- Flutter (1.0.0)
|
- Flutter (1.0.0)
|
||||||
- mop (0.1.1):
|
- mop (0.1.1):
|
||||||
- FinApplet (= 2.40.1)
|
- FinApplet (= 2.40.3)
|
||||||
- FinAppletExt (= 2.40.1)
|
- FinAppletExt (= 2.40.3)
|
||||||
- Flutter
|
- Flutter
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
|
@ -24,10 +24,10 @@ EXTERNAL SOURCES:
|
||||||
:path: ".symlinks/plugins/mop/ios"
|
:path: ".symlinks/plugins/mop/ios"
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
FinApplet: 053df5db21b766a8705a6fb809731ec19f75578e
|
FinApplet: a76ded99df163388bb4de129df20c0ff44abe37c
|
||||||
FinAppletExt: 45c9fece1524d9eafa25e6bcd0fe492060492e3a
|
FinAppletExt: 5c53d5c3554ce1be014871214a5c7a06f0bf9177
|
||||||
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
||||||
mop: 8dffe3317decd528a199f7a8695d74174fded976
|
mop: 4881eb2c1d365d9cf148b5dc7f8eca2b7018121d
|
||||||
|
|
||||||
PODFILE CHECKSUM: 2317ba7584871ae8cd67fd0244fbd5e96fd06167
|
PODFILE CHECKSUM: 2317ba7584871ae8cd67fd0244fbd5e96fd06167
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||||
|
A8C6E1F329E2FFEC00E3B446 /* LoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C6E1F229E2FFEC00E3B446 /* LoadingView.m */; };
|
||||||
|
A8C6E1F629E3E71400E3B446 /* FlutterMethodChannelHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C6E1F529E3E71400E3B446 /* FlutterMethodChannelHandler.m */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
@ -46,6 +48,10 @@
|
||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
A8C6E1F129E2FFEC00E3B446 /* LoadingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadingView.h; sourceTree = "<group>"; };
|
||||||
|
A8C6E1F229E2FFEC00E3B446 /* LoadingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoadingView.m; sourceTree = "<group>"; };
|
||||||
|
A8C6E1F429E3E71400E3B446 /* FlutterMethodChannelHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FlutterMethodChannelHandler.h; sourceTree = "<group>"; };
|
||||||
|
A8C6E1F529E3E71400E3B446 /* FlutterMethodChannelHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FlutterMethodChannelHandler.m; sourceTree = "<group>"; };
|
||||||
B691CF78BE1464D3451E07AF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
B691CF78BE1464D3451E07AF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
@ -120,6 +126,10 @@
|
||||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
|
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
|
||||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
|
74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
|
||||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
|
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
|
||||||
|
A8C6E1F129E2FFEC00E3B446 /* LoadingView.h */,
|
||||||
|
A8C6E1F229E2FFEC00E3B446 /* LoadingView.m */,
|
||||||
|
A8C6E1F429E3E71400E3B446 /* FlutterMethodChannelHandler.h */,
|
||||||
|
A8C6E1F529E3E71400E3B446 /* FlutterMethodChannelHandler.m */,
|
||||||
);
|
);
|
||||||
path = Runner;
|
path = Runner;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -272,6 +282,8 @@
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
|
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
|
||||||
|
A8C6E1F329E2FFEC00E3B446 /* LoadingView.m in Sources */,
|
||||||
|
A8C6E1F629E3E71400E3B446 /* FlutterMethodChannelHandler.m in Sources */,
|
||||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
|
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
|
|
@ -3,10 +3,16 @@ import Flutter
|
||||||
|
|
||||||
@UIApplicationMain
|
@UIApplicationMain
|
||||||
@objc class AppDelegate: FlutterAppDelegate {
|
@objc class AppDelegate: FlutterAppDelegate {
|
||||||
|
|
||||||
|
var channelHander : FlutterMethodChannelHandler?
|
||||||
|
|
||||||
override func application(
|
override func application(
|
||||||
_ application: UIApplication,
|
_ application: UIApplication,
|
||||||
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
||||||
) -> Bool {
|
) -> Bool {
|
||||||
|
|
||||||
|
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
|
||||||
|
channelHander = FlutterMethodChannelHandler(messenger: controller)
|
||||||
GeneratedPluginRegistrant.register(with: self)
|
GeneratedPluginRegistrant.register(with: self)
|
||||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
//
|
||||||
|
// FlutterMethodChannelHandler.h
|
||||||
|
// Runner
|
||||||
|
//
|
||||||
|
// Created by Haley on 2023/4/10.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Flutter/Flutter.h>
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface FlutterMethodChannelHandler : NSObject
|
||||||
|
|
||||||
|
- (instancetype)initWithMessenger:(NSObject *)messenger;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
//
|
||||||
|
// FlutterMethodChannelHandler.m
|
||||||
|
// Runner
|
||||||
|
//
|
||||||
|
// Created by Haley on 2023/4/10.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "FlutterMethodChannelHandler.h"
|
||||||
|
|
||||||
|
#import <FinApplet/UIApplication+FATPublic.h>
|
||||||
|
|
||||||
|
@interface FlutterMethodChannelHandler ()
|
||||||
|
|
||||||
|
@property (nonatomic,strong) FlutterMethodChannel *channel;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation FlutterMethodChannelHandler
|
||||||
|
|
||||||
|
- (instancetype)initWithMessenger:(NSObject<FlutterBinaryMessenger>*)messenger
|
||||||
|
{
|
||||||
|
self = [super init];
|
||||||
|
if (self) {
|
||||||
|
[self setupChannelWithMessenger:messenger];
|
||||||
|
}
|
||||||
|
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setupChannelWithMessenger:(NSObject<FlutterBinaryMessenger>*)messenger
|
||||||
|
{
|
||||||
|
_channel = [FlutterMethodChannel methodChannelWithName:@"com.message.flutter_to_app" binaryMessenger:messenger];
|
||||||
|
|
||||||
|
[_channel setMethodCallHandler:^(FlutterMethodCall * _Nonnull call, FlutterResult _Nonnull result) {
|
||||||
|
NSLog(@"收到Flutter消息:%@", call.method);
|
||||||
|
if ([call.method isEqualToString:@"showCustomMoreView"]) {
|
||||||
|
NSString *appId = call.arguments[@"appId"];
|
||||||
|
// 弹出自定义的更多视图
|
||||||
|
UIViewController *viewController = [[UIApplication sharedApplication] fat_topViewController];
|
||||||
|
|
||||||
|
UIAlertController *alertViewController = [UIAlertController alertControllerWithTitle:@"更多视图" message:appId preferredStyle:UIAlertControllerStyleActionSheet];
|
||||||
|
[alertViewController addAction:[UIAlertAction actionWithTitle:@"转发" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
|
||||||
|
}]];
|
||||||
|
[alertViewController addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
|
||||||
|
|
||||||
|
}]];
|
||||||
|
[viewController presentViewController:alertViewController animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,16 @@
|
||||||
|
//
|
||||||
|
// LoadingView.h
|
||||||
|
// Runner
|
||||||
|
//
|
||||||
|
// Created by Haley on 2023/4/9.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <FinApplet/FinApplet.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface LoadingView : FATBaseLoadingView
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,29 @@
|
||||||
|
//
|
||||||
|
// LoadingView.m
|
||||||
|
// Runner
|
||||||
|
//
|
||||||
|
// Created by Haley on 2023/4/9.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "LoadingView.h"
|
||||||
|
|
||||||
|
@implementation LoadingView
|
||||||
|
|
||||||
|
- (instancetype)initWithFrame:(CGRect)frame {
|
||||||
|
if ([super initWithFrame:frame]) {
|
||||||
|
self.loadingView.padding = 5;
|
||||||
|
self.loadingView.dotView.backgroundColor = [UIColor redColor];
|
||||||
|
self.loadingView.animation.duration = 2;
|
||||||
|
self.titleLabel.textColor = [UIColor redColor];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
- (void)layoutSubviews
|
||||||
|
{
|
||||||
|
[super layoutSubviews];
|
||||||
|
|
||||||
|
// 修改小程序logo应该是从管理后台上传新的小程序图标,因为更多面板、关于页面也会展示小程序logo,只改这里只是loding页面生效
|
||||||
|
self.bottomImageView.hidden = YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -1 +1,2 @@
|
||||||
#import "GeneratedPluginRegistrant.h"
|
#import "GeneratedPluginRegistrant.h"
|
||||||
|
#import "FlutterMethodChannelHandler.h"
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
import 'dart:ffi';
|
import 'dart:ffi';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:mop/api.dart';
|
import 'package:mop/api.dart';
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
@ -10,6 +11,8 @@ import 'package:mop/mop.dart';
|
||||||
|
|
||||||
void main() => runApp(MyApp());
|
void main() => runApp(MyApp());
|
||||||
|
|
||||||
|
const toAppMessageChannel = MethodChannel("com.message.flutter_to_app");
|
||||||
|
|
||||||
class MyApp extends StatefulWidget {
|
class MyApp extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
_MyAppState createState() => _MyAppState();
|
_MyAppState createState() => _MyAppState();
|
||||||
|
@ -41,6 +44,7 @@ class _MyAppState extends State<MyApp> {
|
||||||
List<FinStoreConfig> storeConfigs = [storeConfigA];
|
List<FinStoreConfig> storeConfigs = [storeConfigA];
|
||||||
Config config = Config(storeConfigs);
|
Config config = Config(storeConfigs);
|
||||||
config.language = LanguageType.English;
|
config.language = LanguageType.English;
|
||||||
|
config.baseLoadingViewClass = "LoadingView";
|
||||||
|
|
||||||
UIConfig uiconfig = UIConfig();
|
UIConfig uiconfig = UIConfig();
|
||||||
uiconfig.isAlwaysShowBackInDefaultNavigationBar = false;
|
uiconfig.isAlwaysShowBackInDefaultNavigationBar = false;
|
||||||
|
@ -54,6 +58,7 @@ class _MyAppState extends State<MyApp> {
|
||||||
// capsuleConfig.capsuleRightMargin = 25;
|
// capsuleConfig.capsuleRightMargin = 25;
|
||||||
uiconfig.capsuleConfig = capsuleConfig;
|
uiconfig.capsuleConfig = capsuleConfig;
|
||||||
uiconfig.appletText = "applet";
|
uiconfig.appletText = "applet";
|
||||||
|
uiconfig.loadingLayoutCls = "com.finogeeks.mop_example.CustomLoadingPage";
|
||||||
|
|
||||||
// if (Platform.isIOS) {
|
// if (Platform.isIOS) {
|
||||||
// final res = await Mop.instance.initialize(
|
// final res = await Mop.instance.initialize(
|
||||||
|
@ -174,7 +179,9 @@ class MyAppletHandler extends AppletHandler {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool customCapsuleMoreButtonClick(String appId) {
|
bool customCapsuleMoreButtonClick(String appId) {
|
||||||
return false;
|
print("customCapsuleMoreButtonClick---");
|
||||||
|
toAppMessageChannel.invokeMethod("showCustomMoreView", {"appId": appId});
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -72,8 +72,8 @@
|
||||||
|
|
||||||
NSError* error = nil;
|
NSError* error = nil;
|
||||||
FATUIConfig *uiconfig = [[FATUIConfig alloc]init];
|
FATUIConfig *uiconfig = [[FATUIConfig alloc]init];
|
||||||
uiconfig.autoAdaptDarkMode = YES;
|
|
||||||
if (_uiConfig) {
|
if (_uiConfig) {
|
||||||
|
// 导航栏配置
|
||||||
if (_uiConfig[@"navigationTitleTextAttributes"]) {
|
if (_uiConfig[@"navigationTitleTextAttributes"]) {
|
||||||
uiconfig.navigationTitleTextAttributes = _uiConfig[@"navigationTitleTextAttributes"];
|
uiconfig.navigationTitleTextAttributes = _uiConfig[@"navigationTitleTextAttributes"];
|
||||||
}
|
}
|
||||||
|
@ -91,28 +91,20 @@
|
||||||
if (_uiConfig[@"navigationBarBackBtnDarkColor"]) {
|
if (_uiConfig[@"navigationBarBackBtnDarkColor"]) {
|
||||||
uiconfig.navigationBarBackBtnDarkColor = [MOPTools colorWithRGBHex:[_uiConfig[@"navigationBarBackBtnDarkColor"] intValue]];
|
uiconfig.navigationBarBackBtnDarkColor = [MOPTools colorWithRGBHex:[_uiConfig[@"navigationBarBackBtnDarkColor"] intValue]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更多视图配置
|
||||||
uiconfig.moreMenuStyle = [_uiConfig[@"moreMenuStyle"] integerValue];
|
uiconfig.moreMenuStyle = [_uiConfig[@"moreMenuStyle"] integerValue];
|
||||||
uiconfig.hideBackToHomePriority = [_uiConfig[@"isHideBackHomePriority"] integerValue];
|
uiconfig.hideBackToHomePriority = [_uiConfig[@"isHideBackHomePriority"] integerValue];
|
||||||
uiconfig.hideFeedbackMenu = [_uiConfig[@"isHideFeedbackAndComplaints"] boolValue];
|
|
||||||
uiconfig.hideBackToHome = [_uiConfig[@"isHideBackHome"] boolValue];
|
uiconfig.hideBackToHome = [_uiConfig[@"isHideBackHome"] boolValue];
|
||||||
uiconfig.hideForwardMenu = [_uiConfig[@"isHideForwardMenu"] boolValue];
|
|
||||||
uiconfig.hideShareAppletMenu = [_uiConfig[@"isHideShareAppletMenu"] boolValue];
|
uiconfig.hideShareAppletMenu = [_uiConfig[@"isHideShareAppletMenu"] boolValue];
|
||||||
uiconfig.hideRefreshMenu = [_uiConfig[@"isHideRefreshMenu"] boolValue];
|
|
||||||
uiconfig.hideTransitionCloseButton = [_uiConfig[@"hideTransitionCloseButton"] boolValue];
|
|
||||||
uiconfig.disableSlideCloseAppletGesture = [_uiConfig[@"disableSlideCloseAppletGesture"] boolValue];
|
|
||||||
if (_uiConfig[@"webViewProgressBarColor"]) {
|
|
||||||
uiconfig.progressBarColor = [MOPTools colorWithRGBHex:[_uiConfig[@"webViewProgressBarColor"] intValue]];
|
|
||||||
}
|
|
||||||
|
|
||||||
uiconfig.hideFeedbackMenu = [_uiConfig[@"isHideFeedbackAndComplaints"] boolValue];
|
|
||||||
uiconfig.hideForwardMenu = [_uiConfig[@"isHideForwardMenu"] boolValue];
|
uiconfig.hideForwardMenu = [_uiConfig[@"isHideForwardMenu"] boolValue];
|
||||||
uiconfig.autoAdaptDarkMode = [_uiConfig[@"autoAdaptDarkMode"] boolValue];
|
|
||||||
uiconfig.hideSettingMenu = [_uiConfig[@"isHideSettingMenu"] boolValue];
|
uiconfig.hideSettingMenu = [_uiConfig[@"isHideSettingMenu"] boolValue];
|
||||||
|
uiconfig.hideFeedbackMenu = [_uiConfig[@"isHideFeedbackAndComplaints"] boolValue];
|
||||||
|
uiconfig.hideRefreshMenu = [_uiConfig[@"isHideRefreshMenu"] boolValue];
|
||||||
uiconfig.hideFavoriteMenu = [_uiConfig[@"isHideFavoriteMenu"] boolValue];
|
uiconfig.hideFavoriteMenu = [_uiConfig[@"isHideFavoriteMenu"] boolValue];
|
||||||
uiconfig.hideAddToDesktopMenu = [_uiConfig[@"isHideAddToDesktopMenu"] boolValue];
|
uiconfig.hideAddToDesktopMenu = [_uiConfig[@"isHideAddToDesktopMenu"] boolValue];
|
||||||
|
|
||||||
uiconfig.appletText = _uiConfig[@"appletText"];
|
// 胶囊配置
|
||||||
uiconfig.disableSlideCloseAppletGesture = [_uiConfig[@"disableSlideCloseAppletGesture"] boolValue];
|
|
||||||
if (_uiConfig[@"capsuleConfig"]) {
|
if (_uiConfig[@"capsuleConfig"]) {
|
||||||
NSDictionary *capsuleConfigDic = _uiConfig[@"capsuleConfig"];
|
NSDictionary *capsuleConfigDic = _uiConfig[@"capsuleConfig"];
|
||||||
FATCapsuleConfig *capsuleConfig = [[FATCapsuleConfig alloc]init];
|
FATCapsuleConfig *capsuleConfig = [[FATCapsuleConfig alloc]init];
|
||||||
|
@ -134,8 +126,8 @@
|
||||||
capsuleConfig.capsuleDividerLightColor = [MOPTools colorWithRGBHex:[capsuleConfigDic[@"capsuleDividerLightColor"] intValue]];
|
capsuleConfig.capsuleDividerLightColor = [MOPTools colorWithRGBHex:[capsuleConfigDic[@"capsuleDividerLightColor"] intValue]];
|
||||||
capsuleConfig.capsuleDividerDarkColor = [MOPTools colorWithRGBHex:[capsuleConfigDic[@"capsuleDividerDarkColor"] intValue]];
|
capsuleConfig.capsuleDividerDarkColor = [MOPTools colorWithRGBHex:[capsuleConfigDic[@"capsuleDividerDarkColor"] intValue]];
|
||||||
uiconfig.capsuleConfig = capsuleConfig;
|
uiconfig.capsuleConfig = capsuleConfig;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
uiconfig.hideTransitionCloseButton = [_uiConfig[@"hideTransitionCloseButton"] boolValue];
|
||||||
|
|
||||||
if (_uiConfig[@"navHomeConfig"]) {
|
if (_uiConfig[@"navHomeConfig"]) {
|
||||||
NSDictionary *navHomeConfigDic = _uiConfig[@"navHomeConfig"];
|
NSDictionary *navHomeConfigDic = _uiConfig[@"navHomeConfig"];
|
||||||
|
@ -244,15 +236,19 @@
|
||||||
|
|
||||||
uiconfig.authViewConfig = authViewConfig;
|
uiconfig.authViewConfig = authViewConfig;
|
||||||
}
|
}
|
||||||
uiconfig.appendingCustomUserAgent = _uiConfig[@"customWebViewUserAgent"];
|
|
||||||
uiconfig.hideWebViewProgressBar = [_uiConfig[@"hideWebViewProgressBar"] boolValue];
|
|
||||||
uiconfig.autoAdaptDarkMode = [_uiConfig[@"autoAdaptDarkMode"] boolValue];
|
|
||||||
uiconfig.transtionStyle = [_uiConfig[@"transtionStyle"] integerValue];
|
uiconfig.transtionStyle = [_uiConfig[@"transtionStyle"] integerValue];
|
||||||
|
uiconfig.disableSlideCloseAppletGesture = [_uiConfig[@"disableSlideCloseAppletGesture"] boolValue];
|
||||||
|
if (_uiConfig[@"webViewProgressBarColor"]) {
|
||||||
|
uiconfig.progressBarColor = [MOPTools colorWithRGBHex:[_uiConfig[@"webViewProgressBarColor"] intValue]];
|
||||||
|
}
|
||||||
|
uiconfig.hideWebViewProgressBar = [_uiConfig[@"hideWebViewProgressBar"] boolValue];
|
||||||
|
|
||||||
|
uiconfig.appletText = _uiConfig[@"appletText"];
|
||||||
|
uiconfig.appendingCustomUserAgent = _uiConfig[@"customWebViewUserAgent"];
|
||||||
|
uiconfig.autoAdaptDarkMode = [_uiConfig[@"autoAdaptDarkMode"] boolValue];
|
||||||
|
uiconfig.useNativeLiveComponent = [_uiConfig[@"useNativeLiveComponent"] boolValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// uiconfig.moreMenuStyle = FATMoreViewStyleNormal;
|
|
||||||
[[FATClient sharedClient] initWithConfig:config uiConfig:uiconfig error:&error];
|
[[FATClient sharedClient] initWithConfig:config uiConfig:uiconfig error:&error];
|
||||||
if (error) {
|
if (error) {
|
||||||
failure(@"初始化失败");
|
failure(@"初始化失败");
|
||||||
|
@ -268,8 +264,6 @@
|
||||||
[[FATClient sharedClient].logManager initLogWithLogDir:logDir logLevel:logLevel consoleLog:YES];
|
[[FATClient sharedClient].logManager initLogWithLogDir:logDir logLevel:logLevel consoleLog:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[[FATClient sharedClient] setEnableLog:YES];
|
[[FATClient sharedClient] setEnableLog:YES];
|
||||||
|
|
||||||
success(@{});
|
success(@{});
|
||||||
|
|
|
@ -76,7 +76,6 @@
|
||||||
|
|
||||||
NSError* error = nil;
|
NSError* error = nil;
|
||||||
FATUIConfig *uiconfig = [[FATUIConfig alloc]init];
|
FATUIConfig *uiconfig = [[FATUIConfig alloc]init];
|
||||||
uiconfig.autoAdaptDarkMode = YES;
|
|
||||||
if (_uiConfig) {
|
if (_uiConfig) {
|
||||||
if (_uiConfig[@"navigationTitleTextAttributes"]) {
|
if (_uiConfig[@"navigationTitleTextAttributes"]) {
|
||||||
uiconfig.navigationTitleTextAttributes = _uiConfig[@"navigationTitleTextAttributes"];
|
uiconfig.navigationTitleTextAttributes = _uiConfig[@"navigationTitleTextAttributes"];
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
{
|
{
|
||||||
NSLog(@"MOP_registerAppletHandler");
|
NSLog(@"MOP_registerAppletHandler");
|
||||||
[FATClient sharedClient].delegate = [MOPAppletDelegate instance];
|
[FATClient sharedClient].delegate = [MOPAppletDelegate instance];
|
||||||
[FATClient sharedClient].shareItemDelegate = [MOPAppletDelegate instance];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -17,7 +17,7 @@ A finclip miniprogram flutter sdk.
|
||||||
s.dependency 'Flutter'
|
s.dependency 'Flutter'
|
||||||
s.ios.deployment_target = '9.0'
|
s.ios.deployment_target = '9.0'
|
||||||
|
|
||||||
s.dependency 'FinApplet' , '2.40.1'
|
s.dependency 'FinApplet' , '2.40.4-dev20230422v01'
|
||||||
s.dependency 'FinAppletExt' , '2.40.1'
|
s.dependency 'FinAppletExt' , '2.40.4-dev20230422v01'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -338,6 +338,10 @@ class UIConfig {
|
||||||
// 是否自适应暗黑模式。如果设置为true,则更多页面、关于等原生页面会随着手机切换暗黑,也自动调整为暗黑模式
|
// 是否自适应暗黑模式。如果设置为true,则更多页面、关于等原生页面会随着手机切换暗黑,也自动调整为暗黑模式
|
||||||
bool autoAdaptDarkMode = false;
|
bool autoAdaptDarkMode = false;
|
||||||
|
|
||||||
|
// 是否使用内置的live组件,默认为false。(目前仅iOS支持)
|
||||||
|
// 配置为true时,需要依赖Live扩展SDK。
|
||||||
|
bool useNativeLiveComponent = false;
|
||||||
|
|
||||||
// 要拼接的userAgent字符串
|
// 要拼接的userAgent字符串
|
||||||
String? appendingCustomUserAgent;
|
String? appendingCustomUserAgent;
|
||||||
|
|
||||||
|
@ -399,6 +403,7 @@ class UIConfig {
|
||||||
"moreMenuStyle": moreMenuStyle,
|
"moreMenuStyle": moreMenuStyle,
|
||||||
"isHideBackHomePriority": isHideBackHomePriority.index,
|
"isHideBackHomePriority": isHideBackHomePriority.index,
|
||||||
"autoAdaptDarkMode": autoAdaptDarkMode,
|
"autoAdaptDarkMode": autoAdaptDarkMode,
|
||||||
|
"useNativeLiveComponent": useNativeLiveComponent,
|
||||||
"appendingCustomUserAgent": appendingCustomUserAgent,
|
"appendingCustomUserAgent": appendingCustomUserAgent,
|
||||||
"transtionStyle": transtionStyle.index,
|
"transtionStyle": transtionStyle.index,
|
||||||
"disableSlideCloseAppletGesture": disableSlideCloseAppletGesture,
|
"disableSlideCloseAppletGesture": disableSlideCloseAppletGesture,
|
||||||
|
|
Loading…
Reference in New Issue