@nativescript/google-mobile-ads
Version:
NativeScript Google mobile Ads
88 lines • 2.88 kB
JavaScript
export function toSerializeRequestOptions(requestOptions, isManager = false) {
if (global.isAndroid) {
return null;
}
const request = isManager ? GADRequest.request() : GAMRequest.request();
if (requestOptions?.contentUrl) {
request.contentURL = requestOptions?.contentUrl;
}
if (requestOptions?.keywords) {
request.keywords = requestOptions?.keywords;
}
const nativeExtras = GADExtras.new();
let extras = {};
if (requestOptions?.requestNonPersonalizedAdsOnly) {
extras['npa'] = '1';
}
if (requestOptions?.networkExtras) {
extras = Object.assign(extras, requestOptions?.networkExtras);
}
nativeExtras.additionalParameters = extras;
request.registerAdNetworkExtras(nativeExtras);
if (requestOptions?.requestAgent) {
request.requestAgent = requestOptions?.requestAgent;
}
return request;
}
export function toSerializeManagerRequestOptions(requestOptions) {
if (global.isAndroid) {
return null;
}
const request = toSerializeRequestOptions(requestOptions, true);
if (requestOptions.publisherProvidedId) {
request.publisherProvidedID = requestOptions.publisherProvidedId;
}
if (requestOptions.customTargeting) {
request.customTargeting = requestOptions.customTargeting;
}
if (Array.isArray(requestOptions.categoryExclusions)) {
request.categoryExclusions = requestOptions.categoryExclusions;
}
return request;
}
export const topViewController = () => {
if (global.isAndroid) {
return undefined;
}
const root = rootViewController();
if (root == null) {
return undefined;
}
return findTopViewController(root);
};
const rootViewController = () => {
const app = UIApplication.sharedApplication;
const window = app.keyWindow || (app.windows.count > 0 && app.windows[0]);
return window != null ? window.rootViewController : undefined;
};
const findTopViewController = (root) => {
const presented = root.presentedViewController;
if (presented != null) {
return findTopViewController(presented);
}
if (root instanceof UISplitViewController) {
const last = root.viewControllers.lastObject;
if (last == null) {
return root;
}
return findTopViewController(last);
}
else if (root instanceof UINavigationController) {
const top = root.topViewController;
if (top == null) {
return root;
}
return findTopViewController(top);
}
else if (root instanceof UITabBarController) {
const selected = root.selectedViewController;
if (selected == null) {
return root;
}
return findTopViewController(selected);
}
else {
return root;
}
};
//# sourceMappingURL=utils.js.map