cocos2d-x在iOS/Android雙平臺(tái)上嵌入WebView-創(chuàng)新互聯(lián)

注:文章首次發(fā)布于個(gè)人博客,現(xiàn)將技術(shù)文章轉(zhuǎn)移至此。 http://blog.go3k.org/cocos2dx-add-webview/

創(chuàng)新互聯(lián)自2013年起,先為甘孜州等服務(wù)建站,甘孜州等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為甘孜州企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

游戲中的幫助和游戲公告,可以通過(guò)嵌入顯示W(wǎng)ebView的方案來(lái)實(shí)現(xiàn),通過(guò)編輯HTML來(lái)修改、更新公告的樣式和內(nèi)容都很方便。

iOS平臺(tái)嵌入

iOS平臺(tái)上的嵌入很順利,網(wǎng)上有現(xiàn)成的教程加代碼,關(guān)鍵是做好OC與C++代碼混編的封裝。
參考如下鏈接中的實(shí)現(xiàn)方式: cocos2d-x 使用UIWebView加載網(wǎng)頁(yè)

Android平臺(tái)嵌入

 1. 通過(guò)JNI從cocos2d-x的C++代碼調(diào)用java代碼。

這是Android實(shí)現(xiàn)WebView嵌入的前提條件,務(wù)必仔細(xì)的學(xué)習(xí)一遍,否則無(wú)法向下繼續(xù)。 詳情參見(jiàn): JNI使用教程

這是我總結(jié)的一篇JNI使用的教程,基本涵蓋所有JNI使用相關(guān)的要點(diǎn)。

 2. java代碼的實(shí)現(xiàn)

標(biāo)準(zhǔn)Android顯示W(wǎng)ebView的實(shí)現(xiàn),參考代碼如下:

    public void displayWebView() {
        this.runOnUiThread(new Runnable() {
            public void run() {
//actInstance為成員變量,是當(dāng)前的Activity。   m_webView是WebView類(lèi)型的成員變量
                LinearLayout layout = new LinearLayout(actInstance);
                actInstance.addContentView(layout, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
                m_webView = new WebView(actInstance);
                layout.addView(m_webView);

                LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) m_webView.getLayoutParams();
//可選的webview位置,x,y,width,height可任意填寫(xiě),也可以做為函數(shù)參數(shù)傳入。
                linearParams.leftMargin = x;
                linearParams.topMargin = y;
                linearParams.width = width;
                linearParams.height = height;
                m_webView.setLayoutParams(linearParams);

//可選的webview配置
                m_webView.setBackgroundColor(0);
                m_webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
                m_webView.getSettings().setAppCacheEnabled(false);
            }
        });
    }

這里需要注意的問(wèn)題是:

JNI調(diào)用過(guò)來(lái)的代碼并不是在主線(xiàn)程程序流中,UI顯示需要放到主線(xiàn)程中進(jìn)行。這個(gè)問(wèn)題卡了我半天的時(shí)間,最后問(wèn)了鋒哥才明白Android上需要這么搞。

源碼分享

抽時(shí)間Github上建了項(xiàng)目,地址如下:

https://github.com/go3k/CCXWebview

3. 對(duì)webView的配置

在自定義的webView中跳轉(zhuǎn)鏈接,而不是打開(kāi)系統(tǒng)瀏覽器。

這需要對(duì)webView設(shè)置WebViewClient,并實(shí)現(xiàn)shouldOverrideUrlLoading方法,如下:

改變WebView視圖的大小與位置

設(shè)置webView的LayoutParamaters,setLayoutParams。

參考鏈接: How to add an UIWebView to Cocos2d-x ?

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前題目:cocos2d-x在iOS/Android雙平臺(tái)上嵌入WebView-創(chuàng)新互聯(lián)
本文路徑:http://www.muchs.cn/article14/cdjgde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站網(wǎng)站內(nèi)鏈、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)公司小程序開(kāi)發(fā)、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化