移动端

在移动端,您可通过以下选项启用 FBE:

移动版浏览器

FBE 具备通过移动应用或移动版浏览器完成身份验证的功能。

在启动 FBE 的企业登录时,我们建议使用网址方式。

  1. 将 Facebook 网址中的 www 替换为 m。具体来说,使用 https://m.facebook.com/,而不是 https://www.facebook.com/

如果您传递 https://facebook.com,不包含 mwww,Facebook 将根据来源的浏览器或平台来自动加载带有 mwww 的正确网址。

用户界面示例

以下用户界面示例展示了在移动网站上加载 FBE 的具体情况。

网页视图 (Android) 或 WK/UIWebview (iOS)

Android

我们强烈建议您在 (webview.getSettings().setUserAgentString("< user_agent>")) 代码中,将 DEFAULT UserAgent 字符串传递给网页视图 WebSettings()。请通过 setUserAgentString() 方法更改该字符串。如果用户代理字符串被修改,可能会导致显示问题。

以下示例显示 Google Nexus 4 和 Samsung Galaxy S9 移动设备的默认 UserAgent 值。使用 getUserAgentString() 获取 UserAgent 值:

Google Nexus 4 — Android 5.1 版 (API 22) 768x1280

Mozilla/5.0 (Linux; Android 5.1; Google Nexus 4 Build/LMY47D) 
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 
Chrome/39.0.0.0 
Mobile Safari/537.36

Samsung Galaxy S9 — Android 8.0 版 (API 26) 1440x2960

Mozilla/5.0 (Linux; Android 8.0.0; Samsung Galaxy S9 Build/OPR6.170623.017; wv) 
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 
Chrome/58.0.3029.125 
Mobile Safari/537.36

在这两种情况中,用户界面都能正常显示。请查看下方的 Samsung Galaxy S9 截图:



以下代码示例将网页视图设为最少更新,以便正确显示以上用户界面:

WebView webView;
webView = (WebView) v.findViewById(R.id.webview);
webView.loadUrl('<FBE2.0 URL>');
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
// Sample log to see the Default UserAgent string - Log.i("UserAgent", ""+webSettings.getUserAgentString());
webView.setWebViewClient(new WebViewClient());

您也可以传递以下设置,而不会导致任何显示问题:

  • setLoadWithOverviewMode()
  • setUseWideViewPort()
  • setDomStorageEnabled()
  • setJavaScriptCanOpenWindowsAutomatically()
  • 其他非用户界面更改设置选项

如果企业需要传递自定义的 UserAgent,我们强烈建议您将该值附加getUserAgentString() 返回的默认 UserAgent 字符串之后。为避免发生显示问题,请勿修改 UserAgent 字符串的现有部分。

您应避免传递其他显示设置,因为这可能会导致显示问题。例如,如果您在 Android 网页视图中传递 setLayoutAlgorithm(),系统会重新组织 HTML 并对显示造成负面影响。

iOS

上述 Android 方法同样适用于 iOS UIWebview/WKWebview。

以下代码示例用于在 iOS 设备上获取默认的 UserAgent 值:

// Sample example - appending UserAgent - Please see latest iOS docs for approach to pass this param
webView.customUserAgent = (UIWebView().stringByEvaluatingJavaScript(from: "navigator.userAgent") ?? "") + "/Custom agent"

如果使用 iOS 设备,请按照上述适用于 Android 的最佳实践进行操作。关键是要使用默认的 UserAgent 值,避免传递任何可能会影响网页视图的显示设置。