cocos2d-x의 webview 클래스 사용

cocos2d-x에서 webview 사용



cocos2d-x v3.x 시스템은 webview를 쉽게 통합할 수 있다. ios·android 신경쓰지 않고 사용할 수 있는 것은 매우 편리.
로컬 파일도 쉽게 읽을 수 있으므로 온라인 오프라인 모두 대응할 수 있다.
  • ubuntu14.04
  • android 4.4
  • cocos2d-x v3.4 (수중에 있었던 것이 낡고 죄송합니다.)

    cocos2d-x는 이미 도입되었습니다.

    프로젝트 만들기


    cocos new webview -p com.caad1229.webview -l cpp
    

    우선 WebView를 내보내기



    WebView 객체를 생성. HelloWorldScene.cppinit() 에 추가.
    #include "ui/CocosGUI.h"
    
    bool HelloWorld::init()
    {
        //
        // 省略
        //
    
        {
            auto webView = cocos2d::experimental::ui::WebView::create();
            webView->loadURL("http://yahoo.co.jp");
    
            // ポジションとサイズを調整
            Size screen = Director::getInstance()->getOpenGLView()->getDesignResolutionSize();
            webView->setAnchorPoint(Vec2::ANCHOR_MIDDLE_RIGHT);
            webView->setContentSize(Size(screen.width/2, screen.height));
            webView->setPosition(Vec2(screen.width, screen.height/2));
    
            this->addChild(webView);
        }
    }
    

    에뮬레이터 또는 실제 기기가 연결된 상태에서 빌드 및 실행
    cocos run -p android
    

    다음과 같이 될 것입니다.



    로컬 파일을 내보내기



    앱 내부에 보관하고 있는 파일을 읽어들일 수도 있다. 이렇게하면 오프라인에서도 지정된 HTML을 읽을 수 있습니다.

    로컬 파일 추가



    이미지등 넣을 수 있다 Resouces 폴더에 파일을 넣을 수 있다. 이번에는 help.html
    $ vim ./Resouces/help.html
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>help</title>
        </head>
        <body>
            <h1>
                WebView Help Test Page
            </h1>
            <p>test test test</p>
        </body>
        </html>
    
    HelloWorldScene.cppinit() 에 추가. 거의 같고 loadURLloadFile 가 될 뿐.
        {
            auto webView = cocos2d::experimental::ui::WebView::create();
            webView->loadFile("help.html");
    
            // ポジションとサイズを調整
            Size screen = Director::getInstance()->getOpenGLView()->getDesignResolutionSize();
            webView->setAnchorPoint(Vec2::ANCHOR_MIDDLE_LEFT);
            webView->setContentSize(Size(screen.width/2, screen.height));
            webView->setPosition(Vec2(0, screen.height/2));
    
            this->addChild(webView);
        }
    

    확인해 보면 다음과 같이 된다.



    요약



    최신의 v3.6에서도 experimental 가 되어 있어 실험 단계의 모양. 다만, 복잡하게 사용하지 않는 한 충분할 것이라고 생각한다. 참조에는 다양한 콜백 함수와 webview를 제어하는 ​​API가 있습니다.

    cocos2d-x이므로, 사용하는 것은 게임의 헬프라든지가 될 것 같지만, html이라면 간편하게 다양한 사용법도 할 수 있을 것 같네요. 덧붙여서 당연하지만 리눅스는 없습니다.

    프로젝트 github (용량을 줄이기 위해 cocos2d-x 라이브러리가 제거되었습니다).
  • 좋은 웹페이지 즐겨찾기