Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
此代码在Android2.2中正常工作,但在Android2.3及以上版本中不工作_Android_Android Webview - Fatal编程技术网

此代码在Android2.2中正常工作,但在Android2.3及以上版本中不工作

此代码在Android2.2中正常工作,但在Android2.3及以上版本中不工作,android,android-webview,Android,Android Webview,Jason Shah解释了以下内容: 处理Android2.3WebView损坏的AddJavascriptInterface (对于这个技术主题,我提前向我的普通读者道歉。) 谷歌安卓团队发布了安卓2.3(“姜饼”)SDK 两天前,大张旗鼓地说。这让科技博客界大吃一惊 像往常一样,陷入出版狂潮。然而,一个潜在的 灾难性的错误已经浮出水面,可能会导致成千上万的计算机崩溃 Android Market中的应用程序在打开应用程序后立即出现 这里简要描述了该问题: 简言之:很多 应用程序显示其全部或部

Jason Shah解释了以下内容:

处理Android2.3WebView损坏的AddJavascriptInterface

(对于这个技术主题,我提前向我的普通读者道歉。)

谷歌安卓团队发布了安卓2.3(“姜饼”)SDK 两天前,大张旗鼓地说。这让科技博客界大吃一惊 像往常一样,陷入出版狂潮。然而,一个潜在的 灾难性的错误已经浮出水面,可能会导致成千上万的计算机崩溃 Android Market中的应用程序在打开应用程序后立即出现

这里简要描述了该问题: 简言之:很多 应用程序显示其全部或部分用户界面,其中嵌入的网络视图可以 呈现HTML。这些Web视图利用了一个很好的特性,可以架起一座桥梁 JavaScript(在HTML中)转换为“围绕” 网络视图。Android 2.3完全打破了这座桥。试图 即使是一个基本的调用,也会立即中断WebView并使网络崩溃 应用程序

我相信Android团队的成员已经意识到了这个问题 从早期的报道来看,它并不影响Nexus S(第一款Android系统) 2.3电话)。然而,这并不能真正帮助我们这些对抗模拟器的人

WebView browser;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        browser = (WebView) findViewById(R.id.webve);


        browser.getSettings().setJavaScriptEnabled(true);
        browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
        browser.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url)
            {
                browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");

            }

        });


        browser.loadUrl("http://www.google.com");
    }

    final Context myApp = this;
    Builder builder;

    String content_html;

    class MyJavaScriptInterface
    {
        @SuppressWarnings("unused")
        public void showHTML(String html)
        {
           builder = new AlertDialog.Builder(myApp);
                builder.setTitle("HTML")
                .setMessage(html)
                .setPositiveButton(android.R.string.ok, null)
            .setCancelable(false)
            .create()
            .show();
                content_html = html;
                Log.i("html", html+" ");
        }

    }
12-19 14:53:33.786: W/dalvikvm(452): JNI WARNING: jarray 0x40543998 points to non-array object (Ljava/lang/String;)
    12-19 14:53:33.831: I/dalvikvm(452): "WebViewCoreThread" prio=5 tid=9 NATIVE
    12-19 14:53:33.838: I/dalvikvm(452):   | group="main" sCount=0 dsCount=0 obj=0x4051e198 self=0x29b650
    12-19 14:53:33.838: I/dalvikvm(452):   | sysTid=460 nice=0 sched=0/0 cgrp=default handle=2733960
    12-19 14:53:33.858: I/dalvikvm(452):   | schedstat=( 2873090555 2669702962 182 )
    12-19 14:53:33.878: I/dalvikvm(452):   at android.webkit.BrowserFrame.stringByEvaluatingJavaScriptFromString(Native Method)
    12-19 14:53:33.885: I/dalvikvm(452):   at android.webkit.BrowserFrame.stringByEvaluatingJavaScriptFromString(Native Method)
    12-19 14:53:33.905: I/dalvikvm(452):   at android.webkit.BrowserFrame.loadUrl(BrowserFrame.java:246)
    12-19 14:53:33.924: I/dalvikvm(452):   at android.webkit.WebViewCore.loadUrl(WebViewCore.java:1570)
    12-19 14:53:33.924: I/dalvikvm(452):   at android.webkit.WebViewCore.access$1400(WebViewCore.java:53)
    12-19 14:53:33.934: I/dalvikvm(452):   at android.webkit.WebViewCore$EventHub$1.handleMessage(WebViewCore.java:956)
    12-19 14:53:33.955: I/dalvikvm(452):   at android.os.Handler.dispatchMessage(Handler.java:99)
    12-19 14:53:33.955: I/dalvikvm(452):   at android.os.Looper.loop(Looper.java:130)
    12-19 14:53:33.955: I/dalvikvm(452):   at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:629)
    12-19 14:53:33.955: I/dalvikvm(452):   at java.lang.Thread.run(Thread.java:1019)
    12-19 14:53:33.964: E/dalvikvm(452): VM aborting