Запускать расширение Facebook Business на мобильных устройствах можно двумя способами:
Расширение Facebook Business позволяет проходить аутентификацию в мобильных приложениях и мобильных браузерах.
Для запуска входа от имени компании в расширении Facebook Business рекомендуется использовать URL.
www
на m
в URL Facebook. Например, вместо https://www.facebook.com/
используйте https://m.facebook.com/
. Если вы передадите адрес https://facebook.com
без элемента www
или m
, Facebook автоматически загрузит правильный URL с элементом m
или www
в зависимости от того, какой браузер или платформа используется.
Ознакомьтесь с примерами отображения пользовательского интерфейса при загрузке расширения Facebook Business на мобильном сайте.
Мы настоятельно рекомендуем передавать строку пользовательского агента 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 изменится, что негативно повлияет на отображение.
Описанный выше подход для 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.