아하
디지털·가전제품

스마트폰·태블릿

고매한줄나비132
고매한줄나비132

아이폰에서 자바스크립트 실행 어떻게 해야하는거죠??

1. 안녕하세요. 내용인즉슨, 카카오톡을 실행하면

해시태그# 링크 등을 통해서 자체 인앱 브라우저를 사용할 수 있는데 이 경우에

카카오톡 자체 인앱 브라우저가 자동으로 닫히고

그 외 브라우저어플(크롬, 사파리, 웨일 등)이 자동으로 열리는 환경을 구축하고 싶습니다.

인터넷을 찾아보면 비슷한 코드들이 많이 있는데, 제가 이쪽 분야에서는 완전 문외한이라

사용법을 전혀 모르겠어 지식인에 도움을 구하고자 질문을 남깁니다.

2. 위와 같은 내용들을 실현하기 위하여 아래와 같은 코드들을 사용하고자 하면

도대체 휴대전화(아이폰 기준)의 어디에서, 어떻게 코드를 붙여 넣고 실행해야하는지 알고 싶습니다.

var userAgent = navigator.userAgent.toLowerCase(); // useragent 값 가져오기
if (userAgent.indexOf('kakaotalk') > -1) { // 카카오브라우저 일때
if (userAgent.match(/iPhone|iPad/i)) { // 아이폰 접속 경우
var target_url = "오픈될 페이지 url"
location.href = 'kakaoweb://closeBrowser';
location.href = 'kakaotalk://web/openExternal?url=' + encodeURIComponent(target_url);
}
else { // 안드로이드 접속 경우
// 크롬으로 새창 열기
location.href = 'kakaotalk://inappbrowser/close';
location.href = 'intent://' + location.href.replace(/https?:\/\//i, '') + '#Intent;scheme=http;package=com.android.chrome;end';
}
}


55글자 더 채워주세요.
1개의 답변이 있어요!
  • 정말평온한푸들
    정말평온한푸들

    좋은 질문입니다. 지금 말씀하시는 것은 카카오톡 인앱 브라우저에서 특정 링크를 클릭했을 때, 자동으로 인앱 브라우저를 닫고 외부 브라우저(사파리, 크롬 등)을 열고자 하는 것인데요.

    1. 질문에 대해서, 자바스크립트는 웹페이지 안에서 실행되는 언어입니다. 즉, 위의 코드를 HTML 파일 안에 넣어서 웹페이지로 만든 뒤, 해당 페이지의 링크를 카카오톡에 공유하거나, 카카오채널 메시지 등에 포함시키는 방법을 써야 하는데,

    기본적으로 아이폰 파파리, 크롬 앱 안에서 직접 자바스크립트를 "붙여넣고 실행"하는 기능은 기본적으로 제공되지 않습니다.

    아이폰 자체에서 코드 넣는 곳이 없고, 자바스크립트를 직접 실행하는 방법이 제한되어 있으며 대부분 웹페이지를 통해 실행되거든요.

    구체적 구현 방법을 하려면 다소 복잡한 절차가 필요한데, 직접 웹페이지를 하나 만들어서 웹페이지 링크를 카톡에 붙여넣어야 작동하는 방식이 있는데 이러면 오히려 더 처음 생각했던 편의성이랑은 거리가 멀어지겠죠.

    댓글에 들어가지 않아서 답변에 넣습니다. 이런 HTML 파일을 하나 만들어요.

    <!DOCTYPE html>

    <html lang="ko">

    <head>

    <meta charset="UTF-8">

    <title>외부 브라우저 열기</title>

    <script>

    window.onload = function() {

    var userAgent = navigator.userAgent.toLowerCase();

    if (userAgent.indexOf('kakaotalk') > -1) { // 카카오 인앱브라우저

    var target_url = "https://www.naver.com"; // 외부 브라우저에서 열고 싶은 주소

    if (/iphone|ipad/.test(userAgent)) {

    location.href = 'kakaoweb://closeBrowser'; // 인앱 브라우저 닫기

    setTimeout(function() {

    location.href = 'kakaotalk://web/openExternal?url=' + encodeURIComponent(target_url);

    }, 100);

    } else { // 안드로이드

    location.href = 'kakaotalk://inappbrowser/close';

    setTimeout(function() {

    location.href = 'intent://' + target_url.replace(/^https?:\/\//, '') + '#Intent;scheme=https;package=com.android.chrome;end';

    }, 100);

    }

    }

    };

    </script>

    </head>

    <body>

    <p>잠시만 기다려주세요. 브라우저로 이동 중입니다...</p>

    </body>

    </html>

    그 후 무료 웹호스팅 서비스를 이용해서 웹에 올립니다. 개인 도메인이 있다면 거기 올려도 됩니다.

    올린 링크를 카카오톡 메시지에 넣어서 전달합니다. 그럼 이 링크를 카카오톡에서 누르면 인앱 브라우저가 닫히고, 외부 브라우저로 이동됩니다.

    이런 식으로 설정한 후, 매일 밤 잠들기 전 이 페이지를 '나만의 링크 허브'로 설정해서, 브라우저 열기 전에 거쳐가도록 하는 것입니다.

    이후 스크린타임 '웹사이트 제한'기능을 사용하여, 설정>스크린타임>콘텐츠 및 개인정보 보호 제한 > 웹 콘텐츠

    허용된 웹사이트만 허용으로 전환하면, 카카오 인앱 브라우저에서 어떤 페이지를 열더라도 해당 url이 차단되면 인앱 브라우저에서도 열리지 않습니다.