update android build

This commit is contained in:
wgh19
2024-04-20 17:54:42 +08:00
parent 485b35da9d
commit 9ecfe2bf6c
23 changed files with 404 additions and 36 deletions

View File

@@ -0,0 +1,31 @@
#ifndef FLUTTER_PLUGIN_FLUTTER_QJS_PLUGIN_H_
#define FLUTTER_PLUGIN_FLUTTER_QJS_PLUGIN_H_
#include <flutter/method_channel.h>
#include <flutter/plugin_registrar_windows.h>
#include <memory>
namespace flutter_qjs {
class FlutterQjsPlugin : public flutter::Plugin {
public:
static void RegisterWithRegistrar(flutter::PluginRegistrarWindows *registrar);
FlutterQjsPlugin();
virtual ~FlutterQjsPlugin();
// Disallow copy and assign.
FlutterQjsPlugin(const FlutterQjsPlugin&) = delete;
FlutterQjsPlugin& operator=(const FlutterQjsPlugin&) = delete;
// Called when a method is called on this plugin's channel from Dart.
void HandleMethodCall(
const flutter::MethodCall<flutter::EncodableValue> &method_call,
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
};
} // namespace flutter_qjs
#endif // FLUTTER_PLUGIN_FLUTTER_QJS_PLUGIN_H_

View File

@@ -0,0 +1,12 @@
#include "include/flutter_qjs/flutter_qjs_plugin_c_api.h"
#include <flutter/plugin_registrar_windows.h>
#include "flutter_qjs_plugin.h"
void FlutterQjsPluginCApiRegisterWithRegistrar(
FlutterDesktopPluginRegistrarRef registrar) {
flutter_qjs::FlutterQjsPlugin::RegisterWithRegistrar(
flutter::PluginRegistrarManager::GetInstance()
->GetRegistrar<flutter::PluginRegistrarWindows>(registrar));
}

View File

@@ -0,0 +1,23 @@
#ifndef FLUTTER_PLUGIN_FLUTTER_QJS_PLUGIN_C_API_H_
#define FLUTTER_PLUGIN_FLUTTER_QJS_PLUGIN_C_API_H_
#include <flutter_plugin_registrar.h>
#ifdef FLUTTER_PLUGIN_IMPL
#define FLUTTER_PLUGIN_EXPORT __declspec(dllexport)
#else
#define FLUTTER_PLUGIN_EXPORT __declspec(dllimport)
#endif
#if defined(__cplusplus)
extern "C" {
#endif
FLUTTER_PLUGIN_EXPORT void FlutterQjsPluginCApiRegisterWithRegistrar(
FlutterDesktopPluginRegistrarRef registrar);
#if defined(__cplusplus)
} // extern "C"
#endif
#endif // FLUTTER_PLUGIN_FLUTTER_QJS_PLUGIN_C_API_H_

View File

@@ -0,0 +1,43 @@
#include <flutter/method_call.h>
#include <flutter/method_result_functions.h>
#include <flutter/standard_method_codec.h>
#include <gtest/gtest.h>
#include <windows.h>
#include <memory>
#include <string>
#include <variant>
#include "flutter_qjs_plugin.h"
namespace flutter_qjs {
namespace test {
namespace {
using flutter::EncodableMap;
using flutter::EncodableValue;
using flutter::MethodCall;
using flutter::MethodResultFunctions;
} // namespace
TEST(FlutterQjsPlugin, GetPlatformVersion) {
FlutterQjsPlugin plugin;
// Save the reply value from the success callback.
std::string result_string;
plugin.HandleMethodCall(
MethodCall("getPlatformVersion", std::make_unique<EncodableValue>()),
std::make_unique<MethodResultFunctions<>>(
[&result_string](const EncodableValue* result) {
result_string = std::get<std::string>(*result);
},
nullptr, nullptr));
// Since the exact string varies by host, just ensure that it's a string
// with the expected format.
EXPECT_TRUE(result_string.rfind("Windows ", 0) == 0);
}
} // namespace test
} // namespace flutter_qjs