Flutter未知功能插件adiscope_flutter_plugin的使用

发布于 1周前 作者 htzhanglong 来自 Flutter

Flutter未知功能插件adiscope_flutter_plugin的使用

安装插件

首先,在你的 Flutter 项目中安装 adiscope_flutter_plugin 插件。可以通过以下命令进行安装:

flutter pub add adiscope_flutter_plugin

在执行上述命令之前,请确保你在项目的根目录下打开终端并运行该命令。

设置Android

A. 修改AndroidManifest.xml

AndroidManifest.xml 文件中添加以下配置:

<application>
    <meta-data android:name="adiscope_media_id" android:value="${adiscope_media_id}"/>
    <meta-data android:name="adiscope_media_secret" android:value="${adiscope_media_secret}"/>
    <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="${adiscope_admob_id}"/>
</application>
B. 配置Gradle
a. 配置Project Gradle

在项目的 build.gradle 文件中添加以下配置:

allprojects {
    repositories {
        maven { url 'https://repository.adiscope.com/repository/adiscope/' }
        maven { url "https://s3.amazonaws.com/smaato-sdk-releases/" }
        maven { url "https://verve.jfrog.io/artifactory/verve-gradle-release" }
        maven { url "https://artifactory.bidmachine.io/bidmachine" }
        maven { url "https://maven.ogury.co" }
        maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
        maven { url "https://artifact.bytedance.com/repository/pangle" }
        maven { url 'https://cboost.jfrog.io/artifactory/chartboost-ads/' }
    }
}
b. 配置Module Gradle

在项目的 app/build.gradle 文件中添加以下配置:

android {
    defaultConfig {
        manifestPlaceholders = [
                adiscope_media_id    : "媒体ID",
                adiscope_media_secret: "媒体密钥",
                adiscope_sub_domain  : "子域名",
                adiscope_admob_id    : "Admob应用ID"
        ]
    }
}

dependencies {
    implementation 'com.nps.adiscope:adiscopeCore:3.10.3'
    implementation 'com.nps.adiscope:adiscopeAndroid:1.2.2'
    implementation 'com.nps.adiscope:adapter.chartboost:9.3.1.0'
    implementation 'com.nps.adiscope:adapter.max:12.3.1.3'
    implementation 'com.nps.adiscope:adapter.admob:22.3.0.5'
    implementation "com.nps.adiscope:adapter.pangle:6.1.0.9.0"
    implementation 'com.nps.adiscope:adapter.vungle:7.3.2.0'
}

设置iOS

A. 配置Podfile

Podfile 文件中添加以下配置:

target 'Runner' do
  use_frameworks!
  use_modular_headers!
  pod 'Adiscope', '3.10.3'
  pod 'AdiscopeMediaAdManager', '3.10.3'
  pod 'AdiscopeMediaAdMob', '3.10.3'
  pod 'AdiscopeMediaChartBoost', '3.10.3'
  pod 'AdiscopeMediaPangle', '3.10.3'
  pod 'AdiscopeMediaVungle', '3.10.3'
  pod 'AdiscopeMediaMax', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterAdMob', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterAmazon', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterBidMachine', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterDTExchange', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterFan', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterInMobi', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterMobVista', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterMoloco', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterOgury', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterPangle', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterUnityAds', '3.10.3'
  pod 'AdiscopeMediaMaxAdapterVungle', '3.10.3'
end
B. 配置Info.plist

Info.plist 文件中添加以下配置:

<key>AdiscopeMediaId</key>
<string>媒体ID</string>
<key>AdiscopeMediaSecret</key>
<string>媒体密钥</string>
<key>NSUserTrackingUsageDescription</key>
<string>用户跟踪描述</string>
<key>GADIsAdManagerApp</key>
<true/>
<key>GADApplicationIdentifier</key>
<string>Admob应用ID</string>
<key>AppLovinSdkKey</key>
<string>AppLovin应用ID</string>

使用Adiscope

导入包

在你的 Dart 文件中导入 Adiscope 包:

import 'package:adiscope_flutter_plugin/adiscope_flutter_plugin.dart';
初始化

创建一个 AdiscopeFlutterPlugin 实例,并初始化:

final _adiscopeFlutterPlugin = AdiscopeFlutterPlugin();

Future<void> initialize() async {
    bool result = await _adiscopeFlutterPlugin.initialize() ?? false;
    if (result) {
        // 初始化成功回调
    } else {
        // 初始化失败
    }
}
设置用户信息

设置用户的唯一标识符:

Future<void> setUserId() async {
    var userId = "";        // 设置唯一的用户ID以识别用户
    bool result =  await _adiscopeFlutterPlugin.setUserId(userId) ?? false;
}
展示Offerwall

展示广告墙:

Future<void> showOfferwall() async {
    var unitId = "";        // 管理员分配的单元ID
    bool result = await _adiscopeFlutterPlugin.showOfferwall(unitId) ?? false;
}
RewardedVideo

加载RewardedVideo广告:

Future<void> rewardedVideoLoad() async {
    var unitId = "";      // 管理员分配的单元ID
    bool result = await _adiscopeFlutterPlugin.rewardedVideoLoad(unitId) ?? false;
}

检查RewardedVideo广告是否已加载:

Future<void> rewardedVideoIsLoad() async {
    var unitId = "";      // 管理员分配的单元ID
    bool result = await _adiscopeFlutterPlugin.rewardedVideoIsLoad(unitId) ?? false;
    if (result) {
        // 广告已加载
    } else {
        // 广告未加载
    }
}

展示RewardedVideo广告:

Future<void> rewardedVideoShow() async {
    var unitId = "";      // 管理员分配的单元ID
    bool result = await _adiscopeFlutterPlugin.rewardedVideoIsLoad(unitId) ?? false;
    if (result) {
        bool resultShow = await _adiscopeFlutterPlugin.rewardedVideoShow() ?? false;
        if (resultShow) {
            // 成功
        } else {
            // 请求重复
        }
    } else {
        // 广告未加载
    }
}
回调

设置 RewardedVideo 的回调:

AdiscopeListener.setupRewardedVideoListener(
    onRewarded: (unitId, currencyUnit, amount) {
        // 单元ID, 货币单位, 金额
    },
);

示例代码

下面是完整的示例代码,展示了如何使用 adiscope_flutter_plugin 插件:


更多关于Flutter未知功能插件adiscope_flutter_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter未知功能插件adiscope_flutter_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,针对Flutter中的未知功能插件adiscope_flutter_plugin,由于这是一个具体的第三方插件,通常其使用方式会依赖于插件作者提供的文档和示例。不过,由于我们假设这个插件的具体细节和功能未知,我将提供一个一般性的Flutter插件使用示例框架,你可以根据实际的插件文档进行调整。

首先,确保你已经在pubspec.yaml文件中添加了该插件的依赖项(注意,这里的依赖项名称是假设的,你需要替换为实际的插件名称):

dependencies:
  flutter:
    sdk: flutter
  adiscope_flutter_plugin: ^x.y.z  # 替换为实际的版本号

然后,运行flutter pub get来安装插件。

接下来,在你的Dart代码中导入该插件,并根据其功能进行使用。以下是一个假设性的示例,展示如何初始化插件并使用其可能提供的一个功能(这里的功能名称和方法是假设的,你需要根据实际的插件文档进行调整):

import 'package:flutter/material.dart';
import 'package:adiscope_flutter_plugin/adiscope_flutter_plugin.dart';  // 导入插件

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Adiscope Flutter Plugin Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late AdiscopeFlutterPlugin adiscopePlugin;

  @override
  void initState() {
    super.initState();
    // 初始化插件
    adiscopePlugin = AdiscopeFlutterPlugin();
    
    // 假设插件有一个初始化方法init,这里进行调用
    adiscopePlugin.init().then((_) {
      // 初始化成功后可以执行一些操作,比如调用插件的功能
      _usePluginFeature();
    }).catchError((error) {
      // 处理初始化错误
      print('Initialization failed: $error');
    });
  }

  void _usePluginFeature() {
    // 假设插件有一个名为someFeature的方法,这里进行调用
    adiscopePlugin.someFeature().then((result) {
      // 处理功能调用的结果
      print('Feature result: $result');
    }).catchError((error) {
      // 处理功能调用错误
      print('Feature call failed: $error');
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Adiscope Flutter Plugin Demo'),
      ),
      body: Center(
        child: Text('Check console for plugin output.'),
      ),
    );
  }
}

在这个示例中,我们:

  1. pubspec.yaml中添加了插件依赖。
  2. 在Dart代码中导入了插件。
  3. initState方法中初始化了插件,并假设有一个init方法需要调用。
  4. 调用了一个假设的插件功能someFeature,并处理了结果和错误。

请注意,由于adiscope_flutter_plugin的具体功能和API未知,上述代码中的方法名和功能都是假设的。你需要根据插件的实际文档和API来调整代码。通常,插件的README文件或官方文档会提供详细的初始化步骤、功能调用示例和错误处理指南。

回到顶部