点击webview之后按返回键异常

在webview里滑动网页之后按手机的返回键为什么直接退出应用了啊?但是如果点击的是webview以外的范围再按返回键是好好的,真不知道点击了webview控件之后发生了什么。:6: :6: :6: 各位大大帮帮看呐…在线等…:2: :2: :2:

好吧,昨天我们的项目也碰到类似的问题了。我们项目用的是github上面的2.x的版本,不是专门搞安卓的,也不懂具体的原理,但是今天上午猜测了一下,先在手机上(小米 2S)打开浏览器,然后点击返回按键,直接退出到主界面了。想了一下,又打开游戏,点击那个wiew的区域,然后再点击返回键,也是返回到主屏幕界面了。如果点击那个view之外的区域的话,就没有问题。所以就想着把他的那个点击事件重写一下,是不是就行了呢?果然,重写之后,测试一下,果然可以了。好了,废话不多说了,上代码吧。需要新建一个java文件,并重写WebView

/////////////////////////////////
// MyWebView.java //
/////////////////////////////////
package org.go3k.utilities;

import android.util.AttributeSet;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.content.Context;

public class MyWebView extends WebView{
public MyWebView(Context context) {
super(context);
}

public MyWebView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public MyWebView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

// 重写点击事件的处理
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // 发现是返回按钮的话,我们自己做默认处理,其他的交给系统处理
    if (KeyEvent.KEYCODE_BACK == keyCode) {
        return true;
    }
    
    return false;
}

}

然后修改ZYWebView.java中的新建WebView的代码
if (m_webView == null)
{
m_webView = new MyWebView(m_activity); // 之前是new WebView,改为我们自己继承的类
m_webLayout.addView(m_webView);
}

然后,就OK了,可以向老板交差了。

谢谢你的回复,其实我们就改了三行代码解决的,在 cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxWebView.java

总感觉不好用,怪怪的。

这种修改会引入一个问题。如果有需求在网页上面弹出输入框,就没法实现了

楼上的大神 那要怎么解决弹出输入框的问题

我也遇到这个问题了,只不过是在电视盒子上遇到的,实际上只改一行代码就可以Cocos2dxWebView的this.setFocusableInTouchMode(false);

输入框就不要这样改了,自己重写onkeydown onkeyup的back事件,然后java调C++去响应back该干的事。。。this.setFocusableInTouchMode(true);还保持就可以了,系统检测到输入框会自己弹输入法的

1赞

cocos creator 遇到同样的问题了,
在WebView种点击了以后直接退出了。

同样的问题,老哥解决了吗?

(帖子被作者删除,如无标记将在 24 小时后自动删除)