广告中有一些反应原生组件,但其中一些组件不能使用当前版本的本机版本。 (例如,react-native-admob)。关于以原生方式展示广告的信息严重缺乏,我似乎无法弄清楚大多数人是如何做到这一点的。每个人都真的编写自己的原生UI组件来实现这一目标吗? react-native-admob真的是目前使用admob的唯一方法吗?我完全错过了一些简单的方法吗?
答案 0 :(得分:0)
您可以尝试使用https://github.com/axemclion/react-native-cordova-plugin和https://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设置是我最大的问题,但是我发现了该演练指南以提供帮助:
还有IOS演练。
我遵循了它,它为我工作,尽管您不需要将包添加到MainApplication.java,只需将其导入就可以了。
希望这会有所帮助!