Flutter原生功能测试插件native_test_2的使用
Flutter原生功能测试插件native_test_2的使用
native_test_2简介
native_test_2
是一个用于广告功能测试的 Flutter 插件。目前该插件仅支持安卓端。
安卓接入说明
在安卓端,可以通过以下方式引入插件依赖:
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
注意:如果手动引入 openAD-2.5.6.aar
或其他类似文件时,可能会导致重复引用问题。因此,建议通过上述方式统一管理依赖。
此外,文档中提到的穿山甲 SDK(com.pangle.cn:mediation-sdk:6.2.1.7
)可能无法直接使用,推荐通过 .aar
文件引入。具体穿山甲 SDK 的接入文档可以参考:
穿山甲安卓接入文档
对于 iOS 端的接入文档,请参考:
iOS 聚合 SDK 文档
开始使用
初始化项目
首先,确保已正确配置 pubspec.yaml
文件并安装插件:
dependencies:
native_test_2: ^版本号
运行以下命令以安装依赖:
flutter pub get
示例代码
以下是完整的示例代码,演示如何使用 native_test_2
插件完成广告的注册、预加载和展示功能。
示例代码详解
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:native_test_2/native_test_2.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
final _nativeTest_2Plugin = NativeTest_2();
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
}
/// 初始化平台状态
Future<void> initPlatformState() async {
String platformVersion;
try {
platformVersion = await _nativeTest_2Plugin.getPlatformVersion() ??
'Unknown platform version';
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
/// 广告是否注册成功的标志
bool registerAdResult = false;
/// 展示广告的完整流程
showAd() async {
// 初始化广告流
NativeTestStream.initAdStream(
natuveTestRewardAdCallBack: NatuveTestRewardAdCallBack(
onShow: () {
print('flutter-onShow函数');
},
onClick: () {
print('flutter-onClick函数');
},
onFail: (message) {
print('flutter-onFail函数-----$message');
},
onClose: () {
print('flutter-onClose函数');
},
onReward: () {
print('flutter-onReward函数,奖励发放函数');
},
adInfo: (info) {
print('flutter-info函数,${info}');
},
onCache: () {
print('flutter-onCache函数');
Future.delayed(const Duration(seconds: 2), () async {
print('延迟执行');
await _nativeTest_2Plugin.showAd();
});
},
onUnReady: () {
print('flutter-onUnReady函数');
},
),
);
// 预加载广告
await _nativeTest_2Plugin.loadAd(adCodeId: "2323541");
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: ListView(
children: [
// 显示当前平台版本
Center(
child: Text('Running on: $_platformVersion\n'),
),
// 初始化广告
ElevatedButton(
onPressed: () async {
registerAdResult = await _nativeTest_2Plugin.registerAd(
appId: "767881",
appName: "广告demo",
tanxAppKey: "",
channelName: "demoTest",
);
setState(() {});
},
child: const Text('初始化'),
),
Text('初始化结果${registerAdResult ? "成功" : "失败"}'),
// 预加载广告
ElevatedButton(
onPressed: () async {
await _nativeTest_2Plugin.loadAd(adCodeId: "2323541");
},
child: const Text('预加载广告'),
),
// 展示广告
ElevatedButton(
onPressed: () async {
await _nativeTest_2Plugin.showAd();
},
child: const Text('展示广告'),
),
// 测试完整流程
ElevatedButton(
onPressed: () async {
showAd();
},
child: const Text('测试完整流程'),
),
],
),
),
);
}
}
更多关于Flutter原生功能测试插件native_test_2的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter原生功能测试插件native_test_2的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
native_test_2
是一个用于在 Flutter 中进行原生功能测试的插件。它允许你在 Flutter 应用中测试原生代码(如 Android 和 iOS 平台代码)的功能。以下是如何使用 native_test_2
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 native_test_2
插件的依赖:
dev_dependencies:
native_test_2: ^0.0.1
然后运行 flutter pub get
来获取依赖。
2. 创建测试文件
在 test
目录下创建一个新的测试文件,例如 native_test.dart
。
3. 编写测试代码
在测试文件中,你可以编写测试代码来测试原生功能。以下是一个简单的示例:
import 'package:flutter_test/flutter_test.dart';
import 'package:native_test_2/native_test_2.dart';
void main() {
test('Test native method', () async {
// 初始化插件
final nativeTest = NativeTest2();
// 调用原生方法
final result = await nativeTest.someNativeMethod();
// 验证结果
expect(result, equals('Expected Result'));
});
}
4. 实现原生代码
在 Android 和 iOS 平台上实现原生方法。以下是如何在 Android 和 iOS 上实现 someNativeMethod
的示例。
Android
在 android/app/src/main/kotlin/com/example/your_app/MainActivity.kt
中:
import io.flutter.embedding.android.FlutterActivity
import io.flutter.plugin.common.MethodChannel
class MainActivity: FlutterActivity() {
private val CHANNEL = "com.example.native_test_2"
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result ->
if (call.method == "someNativeMethod") {
result.success("Expected Result")
} else {
result.notImplemented()
}
}
}
}
iOS
在 ios/Runner/AppDelegate.swift
中:
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
let nativeTestChannel = FlutterMethodChannel(name: "com.example.native_test_2",
binaryMessenger: controller.binaryMessenger)
nativeTestChannel.setMethodCallHandler({
(call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
if call.method == "someNativeMethod" {
result("Expected Result")
} else {
result(FlutterMethodNotImplemented)
}
})
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
5. 运行测试
你可以使用以下命令来运行测试:
flutter test test/native_test.dart
6. 查看测试结果
测试运行后,你可以在终端中查看测试结果。如果测试通过,你会看到类似以下的输出:
00:00 +1: All tests passed!