gpt4 book ai didi

java - Tumblr 无法在 WebView 中正确呈现

转载 作者:行者123 更新时间:2023-12-01 10:21:39 27 4
gpt4 key购买 nike

您好,我正在我的应用程序中使用带有嵌入式 Web View 的弹出对话框测试各个站点的 OAuth 授权,用户可以在其中登录并授权。适用于 Twitter 和 foursquare。然而,由于某种原因,Tumblr 无法正确呈现。

当我将授权网址放入桌面浏览器时,一切正常。然而,在我的手机上,无论是在手机上的浏览器上还是在我的应用程序中的 WebView 中,我得到的只是标题“tumblr。准备好。是时候了。按下按钮”加上一个蓝色矩形和一个灰色矩形,其下方我无法与之互动。

我尝试过设置 JavaScript 设置 ( Android webview not rendering html content correctly )、打开和关闭硬件加速 ( Android webview not rendering correctly ) 或设置存储选项 ( Problems loading mobile.twitter in webview )。什么都不起作用。如果有人有任何想法,将不胜感激!

非常感谢,里兹

编辑:我怀疑这与手机上的 Chrome 相关,而不是我的代码,因为 Chrome 本身似乎无法正确渲染 Tumblr。

无论如何,这是我正在使用的代码:

public class FragmentOAuthUrlBrowser extends Fragment {
private static final String REQUEST = "com.chdryra.android.reviewer.View.ActivitiesFragments.FragmentViewUrlBrowser.url";

private static final int LAYOUT = R.layout.fragment_review_url_browser;
private static final int WEB_VIEW = R.id.web_view;

private OAuthRequest mRequest;

public static FragmentOAuthUrlBrowser newInstance(OAuthRequest request) {
return FactoryFragment.newFragment(FragmentOAuthUrlBrowser.class, REQUEST, request);
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
if (args != null) mRequest = args.getParcelable(REQUEST);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(LAYOUT, container, false);

WebView webView = (WebView) v.findViewById(WEB_VIEW);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new OAuthWebViewClient());
webView.loadUrl(mRequest.getAuthorisationUrl());

return v;
}

private class OAuthWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
mRequest.setCallbackResult(view.getUrl());
super.onPageFinished(view, url);
}
}

它的渲染方式如下: enter image description here

谢谢!

最佳答案

我实现了 TumblrLogin。不需要使用硬件加速和存储。

使用启用 JavaScript

//Enable JS support on web browser - important since TumblrLogin utilises JS components to show / hide UI
//Login page will not show up properly if this is not done
webView.getSettings().setJavaScriptEnabled(true);

设置新的 WebView 客户端来捕获重定向。我找到了一个普通的 WebViewClient 来完成这个任务。我想 ChromeWebViewClient 也应该可以找到。

仅此而已。无需其他定制。希望您指向正确的网址。

<string name="tumblr_request">https://www.tumblr.com/oauth/request_token</string>
<string name="tumblr_access">https://www.tumblr.com/oauth/access_token</string>
<string name="tumblr_auth">https://www.tumblr.com/oauth/authorize</string>

关于java - Tumblr 无法在 WebView 中正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35559233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com