Мобильные устройства

Запускать расширение Facebook Business на мобильных устройствах можно двумя способами:

Мобильный браузер

Расширение Facebook Business позволяет проходить аутентификацию в мобильных приложениях и мобильных браузерах.

Для запуска входа от имени компании в расширении Facebook Business рекомендуется использовать URL.

  1. Замените www на m в URL Facebook. Например, вместо https://www.facebook.com/ используйте https://m.facebook.com/.

Если вы передадите адрес https://facebook.com без элемента www или m, Facebook автоматически загрузит правильный URL с элементом m или www в зависимости от того, какой браузер или платформа используется.

Примеры пользовательского интерфейса

Ознакомьтесь с примерами отображения пользовательского интерфейса при загрузке расширения Facebook Business на мобильном сайте.

Объекты WebView (Android) или WK/UIWebview (iOS)

Android

Мы настоятельно рекомендуем передавать строку пользовательского агента DEFAULT для WebSettings() объекта WebView в коде: (webview.getSettings().setUserAgentString("< user_agent>")). Не изменяйте ее с помощью метода setUserAgentString(). Это может привести к проблемам с отображением.

В примере ниже используются значения пользовательского агента по умолчанию для устройств Google Nexus 4 и Samsung Galaxy S9. Для получения значений пользовательского агента используется метод getUserAgentString():

Google Nexus 4, Android 5.1 (API 22), 768 x 1280

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), 1440 x 2960

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 = (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();
  • другие настройки, не влияющие на пользовательский интерфейс.

Если компании нужно передать собственное значение пользовательского агента, настоятельно рекомендуем добавить его к строке пользовательского агента по умолчанию, возвращаемой методом getUserAgentString(). Не изменяйте эту часть строки, чтобы избежать проблем с отображением.

Во избежание проблем не стоит передавать дополнительные настройки отображения. Например, если передать setLayoutAlgorithm() в объекте WebView Android, структура HTML изменится, что негативно повлияет на отображение.

iOS

Описанный выше подход для Android применим и к объектам UIWebview или WKWebview в iOS.

Вот пример кода для получения пользовательского агента по умолчанию в iOS:

// 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. Используйте агент по умолчанию и старайтесь не передавать настройки, которые могут повлиять на отображение WebView.