摘要:交代背景我是個(gè)人開(kāi)發(fā)者然后我的需要制作端我的用戶要求出蘋(píng)果版然后我的學(xué)得渣所以只有學(xué)學(xué)了然而很遺憾的是國(guó)內(nèi)沒(méi)有任何一家廣告聯(lián)盟出了所以不得不收集資料搞一波顯示原生技術(shù)交底搜索了下需要使用到的插件機(jī)制所以請(qǐng)自行熟悉下效果圖上實(shí)現(xiàn)由于我是用
1.交代背景我是個(gè)人開(kāi)發(fā)者, 然后我的app需要制作ios端, 我的用戶要求出蘋(píng)果版, 然后我的swift學(xué)得渣, 所以只有學(xué)學(xué)flutter了. 然而很遺憾的是國(guó)內(nèi)沒(méi)有任何一家廣告聯(lián)盟出了flutter SDK. 所以不得不收集資料搞一波flutter顯示原生View.
2.技術(shù)交底搜索了下, 需要使用到Flutter的插件機(jī)制, 所以請(qǐng)自行熟悉下UiKitView, MethodChannel, PlatformView.
3.效果圖4.ios上實(shí)現(xiàn)
由于我是用的swift, 廣點(diǎn)通的sdk是oc寫(xiě)得, 需要把用到的類寫(xiě)在橋接文件里面
//Runner-Bridging-Header.h
#import "GeneratedPluginRegistrant.h"
#import "GDTNativeExpressAdView.h"
#import "GDTMobBannerView.h"
#import "GDTMobInterstitial.h"
#import "GDTNativeExpressAd.h"
#import "GDTNativeAd.h"
#import "GDTSplashAd.h"
#import "GDTSDKConfig.h"
#import "GDTUnifiedBannerView.h"
在AppDelegate.swift中使用
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate{
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]);let controller = window);if !hasPlugin("BannerPlugin") && controller != nil {
//注冊(cè)插件
BannerPlugin.registerWithRegistrar(registar: registrar(forPlugin: "BannerPlugin"), controller: controller!)
}
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
BannerPlugin.swift
import Foundation
class BannerPlugin {
static func registerWithRegistrar(registar: FlutterPluginRegistrar, controller: UIViewController){
registar.register(BannerViewFactory(controller: controller), withId: "banner");
}
}
BannerViewFactory.swift
import Foundation
class BannerViewFactory : NSObject, FlutterPlatformViewFactory {
let controller: UIViewController
init(controller: UIViewController) {
self.controller = controller
}
public func create(withFrame frame: CGRect, viewIdentifier viewId: Int64, arguments args: Any);return Banner(withFrame:frame, viewId: viewId, args: args, controller: controller)
}
func createArgsCodec() -> FlutterMessageCodec & NSObjectProtocol {
return FlutterStandardMessageCodec.sharedInstance()
}
}
Banner.swift
import Foundation
class Banner : NSObject, FlutterPlatformView, GDTUnifiedBannerViewDelegate{
let viewId:Int64
let args: NSDictionary
let withFrame:CGRect
let controller: UIViewController
init(withFrame: CGRect, viewId: Int64, args: Any);let banner = GDTUnifiedBannerView.init(frame: withFrame,
appId: args.object(forKey: "appid") as! String,
placementId: args.object(forKey: "posId") as! String,
viewController: controller)
banner.delegate = self
banner.loadAdAndShow()
return banner;
}
func unifiedBannerViewFailed(toLoad unifiedBannerView: GDTUnifiedBannerView, error: Error) {
print(error)
}
}
在flutter里面調(diào)用很簡(jiǎn)單.
UiKitView(
viewType: "banner",
creationParams: {"appid": "1105344611", "posId": "1080958885885321"},
creationParamsCodec: const StandardMessageCodec(),
onPlatformViewCreated: (id) {
print(id);
},
),
height: 64,
主要是UiKitView的使用, banner是IOS那邊注冊(cè)的viewID. 這篇文章是為了記錄我在學(xué)習(xí)flutter添加banner廣告的過(guò)程. 不喜勿噴, 謝謝 過(guò)程很簡(jiǎn)單, 就沒(méi)有詳細(xì)去講述原理了. 直接上代碼, 簡(jiǎn)單粗暴.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/7074.html
摘要:判斷為白名單,則直接調(diào)用,返回格式圖片反之,則顯示原圖。處理處理,是美團(tuán)云為美團(tuán)主站提供的處理方式。目前,可用替換路徑的方式來(lái)處理。處理實(shí)際上效果也是不錯(cuò)的,美團(tuán)頁(yè)面里以上的圖片都是懶加載的,基本上都可以滿足需求。 本人是一名前端開(kāi)發(fā)者,在公司負(fù)責(zé)目前負(fù)責(zé)信息流服務(wù),為五大手機(jī)廠商和各大App提供服務(wù),每天的請(qǐng)求就是以億計(jì)算,加上我們又做了SSP和DSP,就是類似于百度廣告聯(lián)盟,騰訊廣...
摘要:總結(jié)本文描述了廣告的全鏈路和相關(guān)的算法知識(shí),受限于庫(kù)存算法的復(fù)雜性和個(gè)人知識(shí)面,只粗略的提出了兩個(gè)方案廣平使用的。 筆者加入騰訊已經(jīng)快5年時(shí)光,一直負(fù)責(zé)廣告前端研發(fā)工作。最近即將離開(kāi)公司,特意將廣告的全鏈路整理了一下,作為自己的一個(gè)總結(jié)。本文將從產(chǎn)品的角度入手,通過(guò)描述廣告的玩法,讓讀者對(duì)廣告有一個(gè)整體的概念和印象。如果你對(duì)廣告熟悉,只想了解廣告的后臺(tái)算法邏輯,大可從第三部分開(kāi)始;如果...
摘要:背景在做廣點(diǎn)通信息流數(shù)據(jù)獲取的時(shí)候有這么一個(gè)字段投放時(shí)間段,格式為位字符串,且都為和,以半個(gè)小時(shí)為最小粒度,從周一零點(diǎn)開(kāi)始至周日點(diǎn)結(jié)束。為不投放,為投放,全傳視為全時(shí)段投放,不允許全部傳。 背景 在做廣點(diǎn)通信息流數(shù)據(jù)獲取的時(shí)候有這么一個(gè)字段:time_series 投放時(shí)間段,格式為 48 * 7 位字符串,且都為 0 和 1,以半個(gè)小時(shí)為最小粒度,從周一零點(diǎn)開(kāi)始至周日 24 點(diǎn)結(jié)束。...
閱讀 713·2023-04-25 19:43
閱讀 3910·2021-11-30 14:52
閱讀 3784·2021-11-30 14:52
閱讀 3852·2021-11-29 11:00
閱讀 3783·2021-11-29 11:00
閱讀 3869·2021-11-29 11:00
閱讀 3558·2021-11-29 11:00
閱讀 6105·2021-11-29 11:00