스마트기기개발관련

안드로이드 ios Flash Android App (StageWebView) air 안에 web 브라우져 html 넣기 붙이기 관련

AlrepondTech 2020. 9. 21. 02:55
반응형

 

 

 

=================================

=================================

=================================

 

 

 

 

 

출처: http://blog.naver.com/PostView.nhn?blogId=q3korea&logNo=120118702277

Flash Android App (StageWebView) 

WebTest.fla
0.01MB
WebTest.apk
0.03MB
WebTest-app.xml
0.00MB

 

[출처] Flash Android App (StageWebView)|작성자 코랴

AIR 1.0부터 사용가능한 flash.html.HTMLLoader Class는 Flash 상에서 웹페이지를 간편하게 

호출해서 출력할 수 있다. 하지만, Android 2.2 Froyo 기반에서 AIR 2.5로 제작한 Flash App은 

HTMLLoader가 Device상에서 정상 동작하지 않는다.

 

PC 개발환경에선 정상동작 하지만, Device에 탑재되면 웹페이지를 호출하지 못하는 현상이 발생한다.

 

* HTMLLoader 샘플코드

import flash.html.HTMLLoader;
import flash.net.URLRequest;

var html : HTMLLoader = new HTMLLoader ();
var request : URLRequest = new URLRequest ('http://www.naver.com');
html.width = this.stage.stageWidth;
html.height = this.stage.stageHeight;
html.load (request);
this.addChild (html);

 

하지만, 이번에 AIR 2.5에 새롭게 추가된 StageWebView Class를 사용하면 위의 HTMLLoader처럼 

Flash 컨텐츠에서 웹페이지를 간편하게 호출할 수 있으며, Android 2.2 Froyo에서도 정상동작 

하는것 을 확인할 수 있다.

 

HTMLLoader는 DisplayObject를 상속받아 구현하지만, StageWebView는 EventDispatcher만

상속받아 구현한다. 즉, HTMLLoader는 표시목록으로 등록하여 처리를 하지만, StageWebView는 

Class 자신을 웹페이지 표시객체처럼 처리한다. 그러므로 HTMLLoader와는 그 출력방식이 다르다.

 

샘플코드는 간단하게 구현할 수 있는데, 살펴보면 다음과 같다.

 
import flash.media.StageWebView;
import flash.geom.Rectangle;
import flash.desktop.NativeApplication;
import flash.desktop.SystemIdleMode;
import flash.system.Capabilities;
import flash.ui.Keyboard;

 

// StageWebView 인스턴스 생성
var html : StageWebView = new StageWebView ();
html.stage = this.stage;

 

// View Port의 크기설정

// apk로 컴파일 할때 LandScape, FullScreen으로 반드시 설정한다.
html.viewPort = new Rectangle (0, 0, this.stage.stageWidth, this.stage.stageHeight);
html.loadURL ('http://www.naver.com');


if (Capabilities.cpuArchitecture == 'ARM')
{
 NativeApplication.nativeApplication.addEventListener (Event.ACTIVATE, evtActivate);
 NativeApplication.nativeApplication.addEventListener (Event.DEACTIVATE, evtDeactivate);
 NativeApplication.nativeApplication.addEventListener (KeyboardEvent.KEY_DOWN, evtKeyboard);
}

 

// App 구동될때 Sleep Mode로 진입하지 않도록 설정
function evtActivate (e : Event) : void
{
 NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
}

 

// App 닫힐경우 close 처리

function evtDeactivate (e : Event) : void
{
 NativeApplication.nativeApplication.exit ();
}

 

// 이전, 다음 키 처리

function evtKeyboard (e : KeyboardEvent) : void
{
 switch (e.keyCode)
 {
  // 이전

  case Keyboard.BACK :
   if (html.isHistoryBackEnabled)
   {
    html.historyBack ();
    e.preventDefault ();
   }
   else
   {
    NativeApplication.nativeApplication.exit ();
   }
  break;
 

 // 다음 
  case Keyboard.SEARCH :
   if (html.isHistoryForwardEnabled)
   {
    html.historyForward ();
   }
   break;
 }
}

 

.apk로 컴파일 할때 -app.xml 작성시 fullScreen값은 true, aspectRatio는 landscape로 처리를 하고

퍼미션은 android:name="android.permission.INTERNET" 으로 반드시 설정해줘야 한다.

 

Device에 설치한 후 구동해보면 웹페이지가 출력되며, 이전/다음 및 기본적인 링크처리, 확대/축소

동작은 정상동작 하는것을 확인할 수 있다. Flash 기반에서 웹 페이지를 보여줄 필요가 있는경우

StageWebView Class를 잘 활용하면 효과적인 App을 개발할 수 있으리라 생각된다.

IT·컴퓨터모바일안드로이드액션스크립트액션스크립트3.0플래시ActionScriptActionScript3.0AIRAirforAndroid

[출처] Flash Android App (StageWebView)|작성자 코랴

 

 

 

=================================

=================================

=================================

 

 

반응형