Skip to content

Commit

Permalink
新增测试页面
Browse files Browse the repository at this point in the history
  • Loading branch information
wanghualei committed Jun 26, 2024
1 parent 3761753 commit 19c06fa
Show file tree
Hide file tree
Showing 4 changed files with 157 additions and 19 deletions.
2 changes: 1 addition & 1 deletion android/.settings/org.eclipse.buildship.core.prefs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ arguments=--init-script /var/folders/tv/dbm7kt650fvdxrtf0k7xgxcm0000gn/T/d146c97
auto.sync=false
build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.4.2))
connection.project.dir=
connection.project.dir=../example/android
eclipse.preferences.version=1
gradle.user.home=
java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
Expand Down
36 changes: 18 additions & 18 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
// ignore_for_file: prefer_const_constructors

import 'dart:ffi';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:mop/api.dart';
import 'dart:async';
import 'dart:io';
import 'package:mop/mop.dart';
import 'package:mop_example/test_page.dart';

void main() => runApp(MyApp());

Expand Down Expand Up @@ -45,6 +43,7 @@ class _MyAppState extends State<MyApp> {
Config config = Config(storeConfigs);
config.language = LanguageType.English;
config.baseLoadingViewClass = "LoadingView";
config.userId = "18607180143";
config.appletDebugMode = BOOLState.BOOLStateTrue;

UIConfig uiconfig = UIConfig();
Expand Down Expand Up @@ -196,21 +195,6 @@ class _MyAppState extends State<MyApp> {
_buildAppletItem(appletId, "finishAll", () {
Mop.instance.clearApplets();
}),
_buildAppletItem(appletId, "qrcodeOpen", () {
FCReLaunchMode mode = FCReLaunchMode.PARAMS_EXIST;
if (index == 1) {
mode = FCReLaunchMode.ONLY_PARAMS_DIFF;
} else if (index == 2) {
mode = FCReLaunchMode.ALWAYS;
} else if (index == 3) {
mode = FCReLaunchMode.NEVER;
}
String qrCode = 'https://api.finclip.com/api/v1/mop/runtime/applet/-f-78d53c04618315e7--';
QRCodeAppletRequest qrcodeRequest = QRCodeAppletRequest(qrCode, reLaunchMode: mode);
Mop.instance.qrcodeStartApplet(qrcodeRequest);

// Mop.instance.qrcodeOpenApplet('https://api.finclip.com/api/v1/mop/runtime/applet/-f-78d53c04618315e7--');
}),
],
),
)
Expand All @@ -226,6 +210,22 @@ class _MyAppState extends State<MyApp> {
home: Scaffold(
appBar: AppBar(
title: const Text('凡泰极客小程序 Flutter 插件'),
actions: <Widget>[
Builder(
builder: (context) {
return IconButton(
icon: Icon(Icons.more_horiz),
tooltip: 'More',
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => TestPage()),
);
},
);
},
),
],
),
body: Column(
children: <Widget>[
Expand Down
137 changes: 137 additions & 0 deletions example/lib/test_page.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
import 'package:flutter/material.dart';
import 'package:mop/mop.dart';

class TestPage extends StatefulWidget {
@override
_TestPageState createState() => _TestPageState();
}

class _TestPageState extends State<TestPage> {
final TextEditingController _controller1 = TextEditingController(text: '5f72e3559a6a7900019b5baa');
final TextEditingController _controller2 = TextEditingController();
final TextEditingController _controller3 = TextEditingController(text: 'key1=value2&name=zhangsan');
final TextEditingController _controller4 = TextEditingController(text: 'https://api.finclip.com/api/v1/mop/runtime/applet/-f-78d53c04618315e7--');

int _selectedRadio = 0;

void _handleRadioValueChange(int? value) {
setState(() {
_selectedRadio = value!;
});
}

void _handleButtonPress() {
// 在这里处理按钮点击事件
String appId = _controller1.text.trim();
String path = _controller2.text.trim();
String query = _controller3.text.trim();

int index = _selectedRadio;
FCReLaunchMode mode = FCReLaunchMode.PARAMS_EXIST;
if (index == 1) {
mode = FCReLaunchMode.ONLY_PARAMS_DIFF;
} else if (index == 2) {
mode = FCReLaunchMode.ALWAYS;
} else if (index == 3) {
mode = FCReLaunchMode.NEVER;
}

Map<String, String>? startParams = {};
if (path.length > 0) {
startParams["path"] = path;
}
if (query.length > 0) {
startParams["query"] = query;
}

RemoteAppletRequest request = RemoteAppletRequest(
apiServer: 'https://api.finclip.com',
appletId: appId,
reLaunchMode: mode,
startParams: startParams);
Mop.instance.startApplet(request);
}

void _handleqrCodeButtonPress() {
String qrcode = _controller4.text.trim();
int index = _selectedRadio;
FCReLaunchMode mode = FCReLaunchMode.PARAMS_EXIST;
if (index == 1) {
mode = FCReLaunchMode.ONLY_PARAMS_DIFF;
} else if (index == 2) {
mode = FCReLaunchMode.ALWAYS;
} else if (index == 3) {
mode = FCReLaunchMode.NEVER;
}
String qrCode = 'https://api.finclip.com/api/v1/mop/runtime/applet/-f-78d53c04618315e7--';
QRCodeAppletRequest qrcodeRequest = QRCodeAppletRequest(qrCode, reLaunchMode: mode);
Mop.instance.qrcodeStartApplet(qrcodeRequest);
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('测试页面'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: <Widget>[
_buildTextField(_controller1, '小程序id'),
_buildTextField(_controller2, '输入path'),
_buildTextField(_controller3, '输入query'),
_buildTextField(_controller4, '二维码地址'),
SizedBox(height: 10),
Column(
children: <Widget>[
_buildRadioTile(0, 'ParamExist'),
_buildRadioTile(1, 'OnlyParamDiff'),
_buildRadioTile(2, 'Always'),
_buildRadioTile(3, 'Never'),
],
),
SizedBox(height: 10),
ElevatedButton(
onPressed: _handleButtonPress,
child: Text('打开小程序'),
),
SizedBox(height: 10),
ElevatedButton(
onPressed: _handleqrCodeButtonPress,
child: Text('二维码打开小程序'),
),
],
),
),
);
}

Widget _buildTextField(TextEditingController controller, String hintText) {
return TextField(
controller: controller,
decoration: InputDecoration(
hintText: hintText,
border: OutlineInputBorder(),
contentPadding: EdgeInsets.symmetric(vertical: 12.0, horizontal: 16.0),
),
);
}

Widget _buildRadioTile(int value, String title) {
return GestureDetector(
onTap: () => _handleRadioValueChange(value),
child: Row(
children: <Widget>[
Radio(
value: value,
groupValue: _selectedRadio,
onChanged: _handleRadioValueChange,
),
Text(title),
],
),
);
}

}
1 change: 1 addition & 0 deletions ios/Classes/MopPlugin.m
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
request.command = call.method;
request.param = (NSDictionary*)call.arguments;
MOPBaseApi* api = [MOPApiConverter apiWithRequest: request];
NSLog(@"method:%@, param:%@", request.command, request.param);
if (api) {
[api setupApiWithSuccess:^(NSDictionary<NSString *,id> * _Nonnull data) {
result(@{@"retMsg":@"ok",@"success":@(YES),@"data": data ? : @{}});
Expand Down

0 comments on commit 19c06fa

Please sign in to comment.