简体   繁体   English

React Native Admob Google 移动广告按钮不起作用。 当我点击 interstitial.show

[英]React Native Admob Google Mobile Ads button not working. When I click on interstitial.show

I have added two onPress event so that I can go to the next page and show the ads on click.我添加了两个 onPress 事件,以便我可以 go 到下一页并在点击时显示广告。 When I press the button the page navigates to another page but the ads is not showing.当我按下按钮时,页面导航到另一个页面,但没有显示广告。 I have not get any errors, what is the issue here我没有收到任何错误,这里有什么问题

import React, { useEffect, useState } from 'react';
    import { Button, TouchableOpacity } from 'react-native';
    import { InterstitialAd, AdEventType, TestIds } from 'react-native-google-mobile-ads';
    
    const adUnitId = __DEV__ ? TestIds.INTERSTITIAL : 'ca-app-pub-3940256099942544/1033173712';
    
    const interstitial = InterstitialAd.createForAdRequest(adUnitId, {
      requestNonPersonalizedAdsOnly: true,
      keywords: ['fashion', 'clothing'],
    });
    
    const Testing = ({ navigation }) =>{
      const [loaded, setLoaded] = useState(false);
    
      useEffect(() => {
        const unsubscribe = interstitial.addAdEventListener(AdEventType.LOADED, () => {
          setLoaded(true);
        });
    
        // Start loading the interstitial straight away
        interstitial.load();
    
        // Unsubscribe from events on unmount
        return unsubscribe;
      }, []);
    
      // No advert ready to show yet
      if (!loaded) {
        return null;
      }
    return (
        <View>
        <TouchableOpacity onPress={() => {interstitial.show();}}>
        <Button onPress = {() => navigation.navigate('FirstPage')} title='Next Screen'></Button>
        </TouchableOpacity>
        <Text>Hello World Testing</Text>
        </View>
      );}
      export default Testing

try with hooks - its working for me试试钩子——它对我有用

ref - https://docs.page/invertase/react-native-google-mobile-ads/displaying-ads-hook参考 - https://docs.page/invertase/react-native-google-mobile-ads/displaying-ads-hook

import { useInterstitialAd, TestIds } from 'react-native-google-mobile-ads';

export default function App({ navigation }) {
  const { isLoaded, isClosed, load, show } = useInterstitialAd(TestIds.Interstitial, {
    requestNonPersonalizedAdsOnly: true,
  });

  useEffect(() => {
    // Start loading the interstitial straight away
    load();
  }, [load]);

  useEffect(() => {
    if (isClosed) {
      // Action after the ad is closed
      navigation.navigate('NextScreen');
    }
  }, [isClosed, navigation]);

  return (
    <View>
      <Button
        title="Navigate to next screen"
        onPress={() => {
          if (isLoaded) {
            show();
          } else {
            // No advert ready to show yet
            navigation.navigate('NextScreen');
          }
        }}
      />
    </View>
  );
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM