SDK ์ฝ์
์น๋ทฐ๋ฅผ ํตํด ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ์ด๋ธ๋ฆฌ๋์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก Android ๋ฐ iOS ์ฑ์ ์ข ์๋ฉ๋๋ค. ๋ฐ๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก Android ๋ฐ iOS SDK๊ฐ ํด๋น ์ฑ์ ์ค์น๋ ์ํ์์ ๊ตฌ๊ธ ํ๋ ์ด์คํ ์ด์ ์ ํ ์ฑ์คํ ์ด์ ๋ฐฐํฌ๋์ด์ผ ์ ํํ ์น๋ทฐ ๋ฐ์ดํฐ ์ธก์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ ์ค์
ํ์ ์ค์ ์ด๋ SDK๊ฐ ๋์ํ๊ธฐ ์ํด์ ๋ฐ๋์ ์ฑ์ ์ถ๊ฐ๋์ด์ผ ํ๋ ์ต์ํ์ ์ค์ ์ ๋งํฉ๋๋ค. ํ์ด๋ธ๋ฆฌ๋์ฑ ํ๊ฒฝ์์์ ํ์ ์ค์ ์ด๋,
Android ๋ฐ iOS์ฉ ์ฑ SDK๊ฐ ์ค์น
์น๋ทฐ์ ๊ฐ ํ์ด์ง์ ํธ๋ํน ์คํฌ๋ฆฝํธ ์ฝ์
์ด ์๋ฃ๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ฑ์ SDK ์ถ๊ฐ ๋ฐ ์ด๊ธฐํ
Android ์ฑ์ ๋ํ SDK ์ค์น๋ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ค์น๋ฅผ ์๋ฃํ์ญ์์ค.
iOS ์ฑ์ ๋ํ SDK ์ค์น๋ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ค์น๋ฅผ ์๋ฃํ์ญ์์ค.
์น,์ฑ ๋ถ์์ ๋์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ ์์ธ ์ฒ๋ฆฌ
HibridApp ์ผ๋ก ๊ฐ๋ฐ๋ ๋ชจ๋ฐ์ผ ์ฑ์์, WebView ์ ๋ก๋ฉ๋๋ ํ์ด์ง๊ฐ ์ผ๋ฐ ๋ฐ์คํฌํ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์๋ ๋์ผํ๊ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ, ํด๋น ์น ํ์ด์ง์๋
์น ์ฌ์ดํธ ๋ถ์์ ์ํ SDK ์ ๋ถ์ ์ฝ๋ ์ ํธ์
๋ชจ๋ฐ์ผ ์ฑ ๋ถ์์ ์ํ ๋ถ์ ์ฝ๋ ์ ํธ๊ฐ ๋์์ ์กด์ฌํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ์ฌ์ฉ์๊ฐ ๋ชจ๋ฐ์ผ ์ฑ์ผ๋ก ์ ๊ทผํ์ฌ, ํด๋น ํ์ด์ง๋ฅผ ์น๋ทฐ์์ ๋ ๋๋ง ์ํค๊ฒ๋๋ฉด, ํด๋น ํ์ด์ง์ ์ ์ฉ๋ ์น ์ฌ์ดํธ ๋ถ์ SDK์ ๋ถ์ ์ฝ๋ ์ ํธ๊ฐ ์คํ๋์ด, ๋ฐ์ดํฐ๊ฐ ๋๋ธ ์นด์ดํ ๋๋ ํ์์ด ๋ํ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ์์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์๋์ ๋ด์ฉ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
์ฑ์์ ์น๋ทฐ์ ํ์ด์ง๋ฅผ ๋ ๋๋ง ํ๊ธฐ ์ ์, ์๋์ ์ฝ๋ ์์์ ๊ฐ์ด ์น๋ทฐ์ navigator.userAgent ๋ฌธ์์ด์ "RW2SDK" ๋ฌธ์์ด์ ์ถ๊ฐํฉ๋๋ค.
StringBuilder _userAgent = new StringBuilder();
_userAgent.append(webView.getSettings().getUserAgentString());
_userAgent.append("RW2SDK");
webView.getSettings().setUserAgentString(_userAgent.toString());webView.evaluateJavaScript("navigator.userAgent", completionHandler: { result, error in
if error != nil {
// error : Error occured to get userAgent
return
}
if let unwrappedUserAgent = result as? String {
self.mainWebView.customUserAgent = "\(unwrappedUserAgent) RW2SDK"
} else {
// error : Failed to get userAgent
}
})์น ์ฌ์ดํธ ๋ถ์ SDK๋ ์๋์ ๊ฐ์ด navigator.userAgent ์ "RW2SDK" ๋ฌธ์์ด์ด ์กด์ฌํ ๊ฒฝ์ฐ, SDK์ ์ด๊ธฐํ ์์ฒญ์ ๋ฌด์ํ๊ฒ ๋๋ฉฐ, ์๋์ ๊ฐ์ console ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋๋ก ๊ตฌํ๋์ด ์์ต๋๋ค.
export class WDOTInitialization {
/** * Website SDK Initialzation ***/
static setConfig(config){
let _ua = window.navigator.userAgent;
if ( _ua.indexOf("RW2SDK") >= 0 ){
console.log("WDOT is disabled with RW Native SDK. ( WDOTInitialization ) ");
}
else{
window.DOP_SDK_CONF = config;
console.log("Set window.DOP_SDK_CONF ", window.DOP_SDK_CONF );
}
}
.... ์ค๋ต ...
}์์ ๊ฐ์ด ๋ชจ๋ฐ์ผ ์ฑ์์ ์ฌ์ฉํ๋ ์น๋ทฐ์ userAgent ์ ์์ฝ๋ ๋ฌธ์์ด (RW2SDK) ๋ฅผ ์ถ๊ฐํ๋ฉด, ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ํ๋ฉด ์น ์ฌ์ดํธ ์คํฌ๋ฆฝํธ๊ฐ ๋์ํ ๊ฒ์ด๊ณ , ์ฌ์ฉ์๊ฐ ๋ชจ๋ฐ์ผ ์ฑ์ ํตํด์ ์นํ์ด์ง๋ฅผ ์ ๊ทผํ๋ฉด User-Agent๋๋ฌธ์, ์น์ฌ์ดํธ ์คํฌ๋ฆฝํธ๋ disabled ๋ฉ๋๋ค.

์นํ์ด์ง์๋ WDOT ๋ก ํ๊น ๋ ์น์ฌ์ดํธ ๋ถ์์ฝ๋์, DOT ๋ก ํ๊น ๋ ๋ชจ๋ฐ์ผ ์น๋ทฐ ๋ถ์์ฝ๋๊ฐ ๋ชจ๋ ๋์์ ์กด์ฌ ๊ฐ๋ฅํ๋ฉฐ, ์ถ๊ฐ์ ์ผ๋ก ์น ํ์ด์ง์ ์ ์ฉ๋๋ ๋ถ์ ์ฝ๋์ ๋ํ์ฌ DOT, WDOT ๊ฐ์ฒด์ ๋ํ Null ์ฒดํฌ๊ฐ ๋ฐ๋์ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ๊ฐ๊ฐ์ ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ SDK Referrence Object๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด if ์ฒ๋ฆฌ๋ฅผ ์งํ ํด ์ฃผ์ธ์.
// ํ๋ฉด๋ถ์์ ์ํ logScreen ์ฒ๋ฆฌ logScreen ์ฒ๋ฆฌ ( ๋ชจ๋ฐ์ผ ์น๋ทฐ์์ ๋ก๋ฉ์ )
if (typeof DOT != 'undefined') {
DOT.logScreen(screen);
}
else if (typeof WDOT != 'undefined') { // ( ๋ธ๋ผ์ฐ์ ธ๋ก ๋ก๋ฉ์ )
WDOT.onStartPage(window.WDOTParam || {});
}
// ์ฑ๋ด ๋์ ๋ถ์์ ์ํ logEvent
if (typeof DOT != 'undefined') {
DOT.logEvent(event);
}
else if (typeof WDOT != 'undefined') {
WDOT.logEvent(event);
}Last updated
Was this helpful?