react-native - Facebook 广告不适用于 expo sdk 33
问题描述
我已将我的 Expo sdk 升级到最新版本 (33.0.0)。我已经改变了我需要的一切(我改变了 fb 广告的导入,如下所示:
import * as FacebookAds from 'expo-ads-facebook';
并下载它)。
当我 2 天前运行这个应用程序时(我在 sdk 32 上)一切都很好,但是现在......我读到了我需要更改的所有内容,所以fb ads
工作只是导入和下载。当我运行我的应用程序时,fb 广告不显示,它在控制台中给出了这个错误:
error SyntheticEvent {
"_dispatchInstances": FiberNode {
"tag": 5,
"key": null,
"type": "ViewManagerAdapter_CTKBannerView",
},
"_dispatchListeners": [Function onError],
"_targetInst": FiberNode {
"tag": 5,
"key": null,
"type": "ViewManagerAdapter_CTKBannerView",
},
"bubbles": undefined,
"cancelable": undefined,
"currentTarget": 1255,
"defaultPrevented": undefined,
"dispatchConfig": Object {
"registrationName": "onAdError",
},
"eventPhase": undefined,
"isDefaultPrevented": [Function functionThatReturnsFalse],
"isPropagationStopped": [Function functionThatReturnsFalse],
"isTrusted": undefined,
"nativeEvent": Object {
"errorCode": 1002,
"errorMessage": "Ad was re-loaded too frequently",
},
"target": undefined,
"timeStamp": 1562671873682,
"type": undefined,
}
我究竟做错了什么?代码:
// page.js
import React from 'react';
import { View } from 'react-native';
import { createStackNavigator, createAppContainer } from 'react-navigation'; // Version can be specified in package.json
import * as FacebookAds from 'expo-ads-facebook';
import AdScreenFacebook from './AdScreenFacebook'
const adsManager = new FacebookAds.NativeAdsManager("2272791379702600_2272795453035526", 10);
class AdScreen extends React.Component {
render () {
return (
<View>
<AdScreenFacebook adsManager={adsManager} />
<FacebookAds.BannerAd
placementId="2272791379702600_2272803043034767"
type="standard"
onPress={() => console.log('click')}
onError={error => console.log('error', error)}
/>
</View>
);
}
}
export default createStackNavigator(
{
Main: {
screen: AdScreen,
},
AdScreenFacebook: {
screen: AdScreenFacebook,
}
},
{
initialRouteName: 'Main',
}
);
// AdScreenFacebook.js
import React from 'react';
import { StyleSheet, Text, View, Dimensions } from 'react-native';
import * as FacebookAds from 'expo-ads-facebook';
const { AdTriggerView, AdMediaView, AdIconView } = FacebookAds;
class AdScreenFacebook extends React.Component {
render () {
return (
<View style={{ flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',}}>
<View style={{ width:500}}>
<AdMediaView style={{ width: 160, height: 90 }}/>
<View style={{flexDirection: 'row'}}>
<AdIconView style={{ width: 50, height: 50 }}/>
<AdTriggerView>
<Text>{this.props.nativeAd.bodyText}</Text>
<Text>{this.props.nativeAd.callToActionText}</Text>
</AdTriggerView>
</View>
</View>
</View>
);
}
}
export default FacebookAds.withNativeAd(AdScreenFacebook);
解决方案
推荐阅读
- java - Bouncy Castle - 如何使用 Bouncy Castle 实现 SignedAndEnveloped 数据
- sdk - 颤振包失败取决于来自 sdk 的 flutter_test any,它需要 SDK 版本 <2.0.0,版本解决失败
- python - 需要帮助从具有固定 URL 的网站上抓取酒店列表并动态加载内容?
- excel - 周历
- github - 如何为 GitHub wiki 创建对齐表?
- sql-server - 如何提高小数的精度
- python - 如何连接到我的数据库而不在烧瓶中硬编码
- mysql - 选择mysql返回0行
- c# - Create dictionary outside and initialize it using LINQ
- javafx - Cleaning up bindings and change listeners on nested properties when parent properties change in javafx