Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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
Android Webview中的Facebook评论_Android_Facebook_Webview - Fatal编程技术网

Android Webview中的Facebook评论

Android Webview中的Facebook评论,android,facebook,webview,Android,Facebook,Webview,我正在尝试将带有Facebook评论部分的网页加载到我的Android WebView中。我遵循这个问题提供的解决方案: 当用户点击网页中的按钮登录Facebook时,他们将看到登录屏幕并可以成功登录,然后该视图关闭,他们将再次看到原始网页。但是,他们仍然没有登录。原始WebView与以前处于相同的状态,登录按钮仍在此处。要将登录名从childView返回到原始注释部分,我缺少了什么?相关代码粘贴如下: webView.setLayoutParams(getLayoutParams());

我正在尝试将带有Facebook评论部分的网页加载到我的Android WebView中。我遵循这个问题提供的解决方案:

当用户点击网页中的按钮登录Facebook时,他们将看到登录屏幕并可以成功登录,然后该视图关闭,他们将再次看到原始网页。但是,他们仍然没有登录。原始WebView与以前处于相同的状态,登录按钮仍在此处。要将登录名从childView返回到原始注释部分,我缺少了什么?相关代码粘贴如下:

webView.setLayoutParams(getLayoutParams());

    webView.setWebChromeClient(new DollyChromeClient());

    webView.setWebViewClient(new DollyWebViewClient());

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setAppCacheEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setSupportMultipleWindows(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setDisplayZoomControls(true);
    webView.getSettings().setBuiltInZoomControls(true);

    CookieManager.getInstance().setAcceptCookie(true);

private RelativeLayout.LayoutParams getLayoutParams(){
    return new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
}



final class DollyChromeClient extends WebChromeClient {
    @Override
    public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
        childView = new WebView(mContext);
        childView.getSettings().setDomStorageEnabled(true);
        childView.getSettings().setJavaScriptEnabled(true);
        childView.getSettings().setSupportZoom(true);
        childView.getSettings().setBuiltInZoomControls(true);
        childView.setWebViewClient(new FaceBookClient());
        childView.setWebChromeClient(this);
        childView.setLayoutParams(getLayoutParams());

        childView.getSettings().setSupportMultipleWindows(true);
        parentLayout.addView(childView);
        childView.requestFocus();
        webView.setVisibility(View.GONE);

        WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
        transport.setWebView(childView);
        resultMsg.sendToTarget();
        return true;
    }

    @Override
    public boolean onConsoleMessage(ConsoleMessage cm) {
        Log.d("WebViewDebug", cm.message() + " -- From line "
                + cm.lineNumber() + " of "
                + cm.sourceId());
        return true;
    }

    @Override
    public void onCloseWindow(WebView window) {
        parentLayout.removeViewAt(parentLayout.getChildCount() -1);
        childView = null;
        webView.setVisibility(View.VISIBLE);
        webView.requestFocus();
    }
}

private class FaceBookClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.i("REQUEST URL", url);
        return false;
    }
}

经过几天的努力,我发现这是由安卓棒棒糖的变化引起的。最终在一台旧设备上进行测试才发现问题的根源,这让我很快发现:

最终的解决方案是以下代码片段:

if (Build.VERSION.SDK_INT >= 21) {
        webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
}

我希望这能帮助将来有人拔出的头发比我上周少一点。

在拔了几天头发后,结果发现这是由于安卓棒棒糖的变化造成的。最终在一台旧设备上进行测试才发现问题的根源,这让我很快发现:

最终的解决方案是以下代码片段:

if (Build.VERSION.SDK_INT >= 21) {
        webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
}

我希望这能帮助将来的人拔出比上周少一点的头发。

我这里有一个使用facebook评论的网络视图示例,也许它会有用。。。
我这里有一个与facebook评论一起使用的webview示例,也许它会有用。。。

很有魅力,你救了我一天。我的头发欠你的债,救了我一个晚上!我爱你,伙计,一个“小”(但长)周的努力让这个工作。。。。你是我的英雄!!!亲爱的!!我真的爱你。谢谢:)很有魅力,你救了我一天。我的头发欠你的债,救了我一个晚上!我爱你,伙计,一个“小”(但长)周的努力让这个工作。。。。你是我的英雄!!!亲爱的!!我真的爱你。谢谢:)