Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 颤振本机android回调_Java_Android_Dart_Callback_Flutter - Fatal编程技术网

Java 颤振本机android回调

Java 颤振本机android回调,java,android,dart,callback,flutter,Java,Android,Dart,Callback,Flutter,我正在开发一个flutter应用程序,它需要一些本地Android代码的帮助。更具体地说,我想集成一个名为“IronSource”的广告网络,在我的应用程序中提供广告服务。但目前他们没有为flatter提供库,所以我用java语言编写了所需的代码,并进行了平台调用以显示广告。广告显示成功,但我在如何听取他们提供的回调方法方面遇到了问题 我将发布我迄今为止尝试过的内容 new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler

我正在开发一个flutter应用程序,它需要一些本地Android代码的帮助。更具体地说,我想集成一个名为“IronSource”的广告网络,在我的应用程序中提供广告服务。但目前他们没有为flatter提供库,所以我用java语言编写了所需的代码,并进行了平台调用以显示广告。广告显示成功,但我在如何听取他们提供的回调方法方面遇到了问题

我将发布我迄今为止尝试过的内容

new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
            new MethodCallHandler() {
                @Override
                public void onMethodCall(MethodCall call, Result result) {
                    if (call.method.equals("loadInterstitialAd")) {
                      IronSource.loadInterstitial();
                    } else {
                      result.notImplemented();
                      }
                      }
            });
上述方法将侦听频道并加载ad。但是,本机库中提供了一些回调方法:

public void onInterstitialAdLoadFailed
public void onInterstitialAdOpened()
public void onInterstitialAdClosed()
public void onInterstitialAdShowSucceeded()
等等

现在我不明白如何在flatter中访问这些方法并编写自己的代码

如有任何想法/建议,将不胜感激。

感谢您可以为
OnInterstitalAdLoadFailed
OnInterstitalAdOpened
OnInterstitalAdClosed
OnInterstitalAdShowSuccessed
定义一些
整数值,并在这些回调方法中调用
Result.onSuccess(Object)
。以下是示例代码:

本地部分:

Result mResult;
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
    new MethodCallHandler() {
        @Override
        public void onMethodCall(MethodCall call, Result result) {
            if (call.method.equals("loadInterstitialAd")) {
              IronSource.loadInterstitial();
              mResult = result;//save the result
            } else {
              result.notImplemented();
            }
        }
    });

 public void onInterstitialAdLoadFailed(){
     mResult.success(0);
 }
 public void onInterstitialAdOpened(){
     mResult.success(1);
 }
 public void onInterstitialAdClosed(){
     mResult.success(2);
 }
 public void onInterstitialAdShowSucceeded(){
     mResult.success(3);
 }
颤振部分:

int resultCode = await loadAds();
if(resultCode == 0){ ... }
else if(resultCode == 1){ ... }
else if(resultCode == 2){ ... }
else if(resultCode == 3){ ... }

无法声明结果mResult的可能重复,它是一个接口