Extra Form
PHP PHP 7.3
CMS Rhymix 2.x

안녕하세요?

 

브라우저 언어 감지(모바일 접속 체크)는 php에서는

if(Mobile::isMobileCheckByAgent()){

...

}

 

이렇게 되는데 js에서 같은 형식으로 넣었더니 작동하지 않습니다.

js에서는 

if(Mobile::isMobileCheckByAgent()){

...

}

 

이 부분을 어떻게 표현해야 할까요?

  • profile
    Mobile::isMobileCheckByAgent() 는 라이믹스 내부함수로서 php 단입니다.
    js는 클라이언트에서 처리되는 언어로 라이믹스나 서버단에 접근할 수 없습니다.

    정확히 어떤 파일의 어디에서 스크립트가 필요한지 부분이 명확히 해주셔야 응용해서 지금하시려는 것을 구현할 수 있는 조언이 가능할 겁니다.

    Mobile::isMobileCheckByAgent() 는 js에서 직접 사용하지 못합니다. 라이믹스 내부 함수입니다.
  • profile profile
    답변 감사합니다. 모바일 감지가 구현되어있는 js인데, 라이믹스 함수가 아닌 것으로 구현되어 있어서 라이믹스 함수로 바꿔보려고 문의드렸습니다. js 화일에서 라이믹스 함수를 사용할 수 없다면 html에서 언어 감지한후 불러오는 js를 다르게 해야겠네요!
  • profile profile

    html에서 스크립트를 직접 사용하시던 아니면 별도 파일의 js 파일에서 사용하시던 지금 생각하신대로 html에서 라이믹스 함수를 사용해수 스크립트 전역변수로 담은 다음 활용하시면 될 것 같습니다.

    제 경험으로는 라이믹스 내부 js에서는 직접 모바일접속 유무 전역변수로 제공하는 것은 보지 못했습니다. 제가 잘 모르고 있을지도 ...

    Mobile::isMobileCheckByAgent() 함수가 사용 가능하시니 생각하신대로 시도하시면 될 겁니다.

  • profile profile
    js 내부에 아래와 같은 방식으로 모바일을 감지하는 소스가 있는데 라이믹스 설정과 별개로 작동하는 것도 그렇지만 태블릿을 모바일로 인식하지 못하는 문제가 있어서 라이믹스 함수를 불러오고 싶었습니다 :)

    감사합니다!

    window.mobileAndTabletCheck = function() {
    let check = false;
    (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
    return check;
    };
  • profile profile

    웹에서 자바스크립트는, 특히 라이믹스에서 자바스크립트는 브라우저와 친화적으로 돌아가는 언어입니다.

    PHP는 서버에 설치해서 해당 서버에서 돌아가는 언어입니다.

    라이믹스 Mobile 클래스의 해당 함수는 PHP에서 쓰도록 만들어져 있기 때문에 윗분 설명대로 JS파일에서 동작하는 언어와 다른 언어로 생각하셔야 합니다.

    별개의 동작이 다르고, 해당 부분마다 다르다면 유용한 라이브러리를 찾아보시는 것도 나쁘진 않습니다.

    구글에 js mobile device check 정도만 검색해보신다면 몇몇 자료가 나올지도 모르겠지요. 해당 라이브러리 이용방법에 따라 코딩해서 적용하시면 되요.