모바일 브라으저 링크를 안드로이드웹뷰에서 열고자 합니다.

모바일 브라으저 링크를 안드로이드웹뷰에서 열고자 합니다.

QA

모바일 브라으저 링크를 안드로이드웹뷰에서 열고자 합니다.

본문

안녕하세요.
아래와 같은 링크가 브라우저상에 있다고 가정하겠습니다.
링크를 클릭했을때, 보고있는 브라우저가 열리는것이 아닌 설치되어있는  안드로이드웹뷰 abc 앱에서 페이지가 열리게 하려면 어떻게 처리해야 할는지요?

<a href="http://abc.com/member/register.html"> 메인화면 바로가기 </a>

딥링크라는것을 검색해서 안드로이드 매니페스트에서 아래와 같이 정의한후 모바일 웹링크를

<a href="abc://move"> 메인화면 바로가기 </a>

이런식으로 해주면 abc 앱이 열리기는 하는데 이후 특정페이지로 ("member/register.html") 이동을 어떻게 처리해야 할는지 모르겠습니다.


          <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:host="move" android:scheme="abc" />
            </intent-filter>

이 질문에 댓글 쓰기 :

답변 2

https://medium.com/%EB%B0%95%EC%83%81%EA%B6%8C%EC%9D%98-%EC%82%BD%EC%A7%88%EB%B8%94%EB%A1%9C%EA%B7%B8/%EB%94%A5%EB%A7%81%ED%81%AC-deeplink-%EC%B2%98%EB%A6%AC-schemeactivity-%ED%95%98%EB%82%98%EB%A1%9C-%EB%81%9D%EB%82%B4%EA%B8%B0-877c2b60619b

 

이걸 보시고 하시면 되는데

 

딥링크 + 변수전달을 하면 안드로이드앱에서 변수를 전달받을수 있고 

 

해당 변수에 따라서 분기를 한후 웹뷰로 이동을 하시면 됩니다.

 

<a href="abc://move?mode=register"> 메인화면 바로가기 </a>

 

이렇게 전달하면 앱에서 mode 라는 변수값을 받을수 있고 그받은변수로

 

웹뷰명.loadurl("도메인/member/register.html");

 

이런식으로 처리가됩니다.

적어주신 링크는 질문전에 이미 검색해서 보았는데 안드로이드 초보라 역시 잘 이해가 안가더군요..
분기코드를 메인액티비티에서 작성해줘야 할거 같은데, 그부분에서 막히고 있습니다 ㅠㅠ

https://developer.android.com/training/app-links/deep-linking?hl=ko#java

=> 기본적인 설명같고 이걸 참고해서 아래와 같이 사용합니다.

 

Intent intent = getIntent();

if (Intent.ACTION_VIEW.equals(intent.getAction())) {
  Uri uri = intent.getData();
  String mode = CommonLib.parse_scheme_url(openurl, "mode");
  Log.d(TAG, TAG + " ::: deeplink mode ::: " + mode);
  if (mode.equals("register") {

    웹뷰명.loadurl("도메인/member/register.html");

  }
}

 

CommonLib 클래스 화일에 해당 함수

 

public static String parse_scheme_url(String scheme, String key) {
try {
Uri url = Uri.parse(scheme);
return url.getQueryParameter(key);
} catch (Exception e) {
return " ";
}
}

 

=> 저는 이런식으로 딥링크를 받아서 사용합니다.

=> 이게 좀더 쉬울거 같네요

답변을 작성하시기 전에 로그인 해주세요.
전체 123,117 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT