コメント
コメントの投稿
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。
using System;
using AdMax.iOS;
using CoreGraphics;
using Foundation;
using ObjCRuntime;
using UIKit;
using AdSupport;
using Security;
using ImageIO;
using SystemConfiguration;
namespace AdMax.iOS
{
// @protocol NAAdViewDelegate <NSObject>
[Protocol, Model]
[BaseType (typeof(NSObject))]
interface NAAdViewDelegate
{
// @optional -(void)adViewWillStartRequest;
[Export ("adViewWillStartRequest")]
void AdViewWillStartRequest ();
// @optional -(void)adViewDidReceiveAd:(NAAdView *)adView;
[Export ("adViewDidReceiveAd:")]
void AdViewDidReceiveAd (NAAdView adView);
// @optional -(void)adViewDidClickAd:(NAAdView *)adView;
[Export ("adViewDidClickAd:")]
void AdViewDidClickAd (NAAdView adView);
// @optional -(void)adViewWillShowDummyAd:(NAAdView *)adView;
[Export ("adViewWillShowDummyAd:")]
void AdViewWillShowDummyAd (NAAdView adView);
// @optional -(void)adViewWillClosedAd:(NAAdView *)adView;
[Export ("adViewWillClosedAd:")]
void AdViewWillClosedAd (NAAdView adView);
// @optional -(void)adView:(NAAdView *)adView didFailRequestWithError:(NSError *)error;
[Export ("adView:didFailRequestWithError:")]
void AdView (NAAdView adView, NSError error);
}
// @interface NAAdView : UIView
[BaseType (typeof(UIView))]
interface NAAdView
{
// @property (copy, nonatomic) NSString * adCode;
[Export ("adCode")]
NSString AdCode { get; set; }
// @property (assign, nonatomic) BOOL tracking;
[Export ("tracking")]
bool Tracking { get; set; }
// @property (assign, nonatomic) BOOL testMode;
[Export ("testMode")]
bool TestMode { get; set; }
// @property (nonatomic, weak) UIViewController * rootViewController __attribute__((iboutlet));
[Export ("rootViewController", ArgumentSemantic.Weak)]
UIViewController RootViewController { get; set; }
[Wrap ("WeakDelegate")]
NAAdViewDelegate Delegate { get; set; }
// @property (nonatomic, weak) id<NAAdViewDelegate> delegate __attribute__((iboutlet));
[NullAllowed, Export ("delegate", ArgumentSemantic.Weak)]
NSObject WeakDelegate { get; set; }
// -(id)initWithFrame:(CGRect)frame adCode:(NSString *)adCode;
[Export ("initWithFrame:adCode:")]
IntPtr Constructor (CGRect frame, NSString adCode);
// -(id)initWithFrame:(CGRect)frame adCode:(NSString *)adCode tracking:(BOOL)tracking;
[Export ("initWithFrame:adCode:tracking:")]
IntPtr Constructor (CGRect frame, NSString adCode, bool tracking);
// -(id)initWithFrame:(CGRect)frame adCode:(NSString *)adCode tracking:(BOOL)tracking testMode:(BOOL)testMode;
[Export ("initWithFrame:adCode:tracking:testMode:")]
IntPtr Constructor (CGRect frame, NSString adCode, bool tracking, bool testMode);
// -(void)setWithAdCode:(NSString *)adCode tracking:(BOOL)tracking;
[Export ("setWithAdCode:tracking:")]
void SetWithAdCode (NSString adCode, bool tracking);
// -(void)setWithAdCode:(NSString *)adCode tracking:(BOOL)tracking testMode:(BOOL)testMode;
[Export ("setWithAdCode:tracking:testMode:")]
void SetWithAdCode (NSString adCode, bool tracking, bool testMode);
// -(void)setWithAdCode:(NSString *)adCode tracking:(BOOL)tracking testMode:(BOOL)testMode delegate:(id<NAAdViewDelegate>)delegate;
[Export ("setWithAdCode:tracking:testMode:delegate:")]
void SetWithAdCode (NSString adCode, bool tracking, bool testMode, NAAdViewDelegate @delegate);
// -(void)loadAd;
[Export ("loadAd")]
void LoadAd ();
// -(void)stopRequest;
[Export ("stopRequest")]
void StopRequest ();
}
[Static]
//[Verify (ConstantsInterfaceAssociation)]
public interface Constants
{
// extern const NSInteger NAAdViewDefaultWidth;
[Field ("NAAdViewDefaultWidth", "__Internal")]
nint NAAdViewDefaultWidth { get; }
// extern const NSInteger NAAdViewDefaultHeight;
[Field ("NAAdViewDefaultHeight", "__Internal")]
nint NAAdViewDefaultHeight { get; }
}
}
using System;
using ObjCRuntime;
namespace AdMax.iOS
{
}
using UIKit;
using CoreGraphics;
using Foundation;
using System;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(AdBanner), typeof(AdBannerRenderer))]
namespace AppName.iOS.Renderer
{
public class AdBannerRenderer : ViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e)
{
base.OnElementChanged(e);
if (Control == null)
{
//AdMax
const string adCode = "01234567890123456789abcdef";
this.ShowAdMaxBanner(adCode);
}
}
/// <summary>
/// AdMaxによる広告を表示する
/// </summary>
/// <param name="adCode">adCode</param>
private void ShowAdMaxBanner(string adCode)
{
bool isTracking = true;
bool isTestMode = false;
#if DEBUG
isTestMode = true;
#endif
/*
* AdMaxSDK/NAAdViewの定数
* NAAdViewDefaultWidth = 320;
* NAAdViewDefaultHeight = 50;
*/
var defaultWidth = (float)(AdMax.iOS.Constants.NAAdViewDefaultWidth);
var defaultHeight = (float)(AdMax.iOS.Constants.NAAdViewDefaultHeight);
// new CGRect(x, y, width, height)
CGRect adViewFrame = new CGRect(0, 0, defaultWidth, defaultHeight);
AdMax.iOS.NAAdView adMaxView = new AdMax.iOS.NAAdView(adViewFrame, new NSString(adCode), isTracking, isTestMode);
adMaxView.RootViewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
base.SetNativeControl(adMaxView);
adMaxView.LoadAd();
}
}
}
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。