2017-01-22 1 views
0

Safari 및 Chrome과 같은 웹 브라우저를 통해 웹 사이트에 입장하거나 웹 응용 프로그램에서 웹보기를 통해 웹 사이트를 방문하는 경우 웹 사이트는 어떻게 구별 할 수 있습니까?웹 브라우저 또는 앱을 통해 웹 사이트에 들어간 경우 웹 사이트는 어떻게 구별 할 수 있습니까?

웹 앱을 만들고 있습니다. 그러나 웹 브라우저를 사용하여 웹 사이트에 액세스 할 때와 웹보기를 사용하는 모바일 응용 프로그램을 사용할 때 서로 다른 UI를 제공하고자합니다.

+1

사용자 에이전트, 화면 크기/해상도. 앱을 설치할 수 있고 기본이지만 하이브리드가 아닌 경우 맞춤 헤더 요청. –

+0

그러나 아담이 말한 모든 것은 가짜 일 수 있으므로 사용자가 헤더 등으로 표시된 * 장치에서 웹 사이트를 실제로 요청한다는 보증은 없습니다. – luk2302

+0

@PoByBolek .NET과 거의 관계가 없습니다. –

답변

0

내가 생각 권장합니다. 나는 이것을 위해 다른 해결책을 연습 해왔다.

응용 프로그램이 모바일에서 실행될 때 브라우저 컨텍스트에 자바 스크립트 브리지 객체를 삽입 할 수 있습니다. 응용 프로그램이 브라우저에서 실행될 때 자바 스크립트 브리지 객체가 있는지 확인하고, 그렇지 않은 경우에는 에뮬레이션합니다.

당신이 두 경우 모두 같은 뭔가 방법이 그것을 필요로 : 그것은 좋아 구현할 것이다 웹

nativeBridge.getClientId(); 

을 :

if(!window.nativeBridge){ 
    window.nativeBridge = { 
     getClientId:function(){ return "web"; } 
    } 
} 

웹보기 당신은을 추가해야합니다 메서드를 다른 상수를 반환하는 브리지에 전달합니다.

참고 : 'nativeBridge'는 단지 이름입니다. 다른 개체 이름이있을 수 있습니다.

+0

고마워요! 하지만 그것은 응용 프로그램에서 UI를 변경하는 방법이라고 생각합니다. 사용자가 응용 프로그램이나 사파리를 통해 액세스한다는 것을 웹 사이트에서 알 수있는 방법이 있습니까? 나는 어떤 방식으로 (웹 브라우저에서) 사용자가 웹 사이트에 액세스하는지에 따라 웹 사이트에서 UI를 변경하려고합니다. 응용 프로그램을 변경하지 마십시오. –

+0

이것은 하이브리드 앱에만 페이지가로드되기 전에 정의 된 자바 스크립트 브리지 객체가 정의되어 있기 때문에 사용자가 모바일이나 일부 브라우저에서 액세스하면 웹 사이트가이를 감지하는 방식입니다. 따라서 웹 사이트가하는 첫 번째 일은 자바 스크립트 브릿지가 정의되어 있고 어떤 클라이언트가 연결되어 있는지 확인하는 것입니다. 수표의 결과에 따라 웹 사이트가 다르게 렌더링됩니다. 하지만 예, 앱을 약간 변경해야합니다. 그렇지 않으면 다른 브라우저에서와 마찬가지로 jsut을 언급했습니다. –

1

는 두 가지 방법이 있습니다

  1. 브라우저뿐만 아니라 "웹보기"- 머리없는 브라우저 종류 - 중입니다 - 서버에서 사용할 수 있어야 웹 사이트에 사용자 에이전트 문자열을 전달/프로그래밍 - 환경. 이러한 문자열을 분석하고이를 기반으로 다른 UI를 제공 할 수 있습니다. Google에서 "webview user agent string"을 검색하십시오.
  2. 기기 자체는 신경 쓰지 마세요. 화면 크기 (CSS Media Queries 사용) 및 입력 방법 (Pointer-Events을 탐색하는 여정 시작)과 같은 "기능"을 기반으로 다른 UI를 제공하십시오.

요즘 대부분의 개발자는 모바일 응용 프로그램 및 웹 사이트를 직접 구현하고 브라우저 대 자신의 응용 프로그램을 감지하는 데 필요한 옵션 2

관련 문제