如何在本机应用中显示广告

时间:2017-01-19 16:59:56

标签: facebook react-native admob ads

广告中有一些反应原生组件,但其中一些组件不能使用当前版本的本机版本。 (例如,react-native-admob)。关于以原生方式展示广告的信息严重缺乏,我似乎无法弄清楚大多数人是如何做到这一点的。每个人都真的编写自己的原生UI组件来实现这一目标吗? react-native-admob真的是目前使用admob的唯一方法吗?我完全错过了一些简单的方法吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用https://github.com/axemclion/react-native-cordova-pluginhttps://github.com/appfeel/admob-google-cordova

$ npm install react-native-cordova-plugin --save
$ node_modules/.bin/cordova-plugin add cordova-plugin-camera cordova-admob

android / settings.gradle

 include ':app'
+ include ':cordovaplugin'
+ project(':cordovaplugin').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-cordova-plugin/framework/android')

android / app / build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules    ...
+   compile project(':cordovaplugin')
}

android / app / src / main / java / com / appname / MainActivity.java

...
+  import io.cordova.reactnative.CordovaPluginPackage;
...
public class MainActivity extends ReactActivity {
     ...
     @Override
     protected List<ReactPackage> getPackages() {
         return Arrays.<ReactPackage>asList(
                 new MainReactPackage(),
+                cordovaPluginPackage = new CordovaPluginPackage(this)
         );
     }
+    private CordovaPluginPackage cordovaPluginPackage;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        cordovaPluginPackage.setSavedInstanceState(savedInstanceState);
+    }
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
+        super.onActivityResult(requestCode, resultCode, intent);
+        cordovaPluginPackage.onActivityResult(requestCode, resultCode, intent);
+    }
}

index.android.js 或任何其他组件中:

var Cordova = require('react-native-cordova-plugin');
Cordova.navigator.admob.createBannerView({publisherId: "ca-app-pub-XXXXXXXXXXXXXXXX/BBBBBBBBBB"});
Cordova.addEventListener(Cordova.navigator.admob.events.onAdLoaded, onEvent);

答案 1 :(得分:0)

react-native-admob建立起来很痛苦。我开始怀疑自己是不是被打破了。但这不是,您只需要设置一些内容。为Android设置是我最大的问题,但是我发现了该演练指南以提供帮助:

https://pradnyachoudhari.wordpress.com/2019/03/22/integrating-google-admob-in-react-native-android-project/

还有IOS演练。

我遵循了它,它为我工作,尽管您不需要将包添加到MainApplication.java,只需将其导入就可以了。

希望这会有所帮助!