【发布时间】:2016-02-22 16:50:17
【问题描述】:
您好,我正在使用带有嵌入式 web 视图的弹出对话框在我的应用程序中为各种站点测试 OAuth 授权,用户可以在其中登录和授权。适用于 twitter 和foursquare。然而,由于某种原因,Tumblr 无法正确渲染。
当我将授权 URL 放入桌面浏览器时,一切正常。但是在我的手机上,无论是在手机上的浏览器上还是在我的应用程序的 web 视图中,我得到的只是标题“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);
}
}
谢谢!
【问题讨论】: