展会信息港展会大全

Cocos2d-x界面中嵌套android的webview
来源:互联网   发布日期:2015-09-26 21:20:03   浏览:2280次  

导读:在2dx界面中嵌套加载显示一个webview,最简单的用法就是直接在一个WebView控件中显示,代码如下:public class WebViewActivity extends Act...

在2dx界面中嵌套加载显示一个webview,最简单的用法就是直接在一个WebView控件中显示,代码如下:

public class WebViewActivity extends Activity {

WebView wv;

@SuppressLint("SetJavaScriptEnabled")

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);

wv = (WebView) findViewById(R.id.webview);

// wv.loadUrl("http://192.168.1.112/ttt.htm");

wv.loadUrl("http://www.baidu.com");

wv.setWebViewClient(new WebViewClientDemo());

wv.getSettings().setJavaScriptEnabled(true);

}

private class WebViewClientDemo extends WebViewClient {

@Override

// 在WebView中而不是默认浏览器中显示页面

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

}

}

再试一试直接全代码显示,外加设置了一些简单的属性,可以自定义这个webview的大小

public class bxWebview extends Cocos2dxActivity {

static WebView m_webView;

static bxWebview majiang = null;

static FrameLayout m_webLayout;

static LinearLayout topLayout;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 全局变量保存this

majiang = this;

// 初始化一个空的布局

m_webLayout = new FrameLayout(this);

m_webLayout.setPadding(30, 50, 30, 10);

addContentView(m_webLayout, new LayoutParams(LayoutParams.FILL_PARENT,

LayoutParams.FILL_PARENT

// LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT

));

}

public Cocos2dxGLSurfaceView onCreateView() {

Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);

// TestCpp should create stencil buffer

glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);

return glSurfaceView;

}

static {

System.loadLibrary("cocos2dcpp");

}

public static void openWebView() {

majiang.runOnUiThread(new Runnable() {// 在主线程里添加别的控件

@SuppressLint("SetJavaScriptEnabled")

public void run() {

// 初始化webView

m_webView = new WebView(majiang);

// 设置webView能够执行javascript脚本

m_webView.getSettings().setJavaScriptEnabled(true);

// 设置可以支持缩放

m_webView.getSettings().setSupportZoom(true);// 设置出现缩放工具

m_webView.getSettings().setBuiltInZoomControls(true);

// 载入URL

m_webView.loadUrl("http://www.baidu.com");

// 使页面获得焦点

m_webView.requestFocus();

// 如果页面中链接,如果希望点击链接继续在当前browser中响应

m_webView.setWebViewClient(new WebViewClient() {

public boolean shouldOverrideUrlLoading(WebView view,

String url) {

if (url.indexOf("tel:")

c++中调用方法

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

JniMethodInfo minfo;

bool isHave = JniHelper::getStaticMethodInfo(minfo,"com/xxx/xxx/bxWebview","openWebView","()V");

if (isHave)

{

CCLog("exists----------");

minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);

}else{

CCLog("do not exist----------");

}

#endif头文件包含

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

#include

#include "platform/android/jni/JniHelper.h"

#include

#endif

这样可以显示网页的话就可以做很多事情了,也方便了代码。

赞助本站

人工智能实验室

相关热词: cocos2d 游戏开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港