브라우저에서 내 HTML 페이지 링크를 통해 사용자 정의 의도를 브로드 캐스트 할 수 있습니까?

Divyang Panchal

브라우저에서 내 HTML 페이지의 링크를 클릭 할 때 내 사용자 지정 의도를 브로드 캐스트하고 싶습니다. 나는 안드로이드 시스템이 이것에 대해 "android.intent.action.VIEW"를 브로드 캐스트한다는 것을 알고 있으며 내 애플리케이션에서 이것을받을 수 있지만 이렇게하면 클릭 가능한 모든 링크에 대해 내 애플리케이션이 나열되므로 내 사용자 지정 의도 작업을 브로드 캐스트하고 싶습니다.

Divyang Panchal

나는 이것을 다음과 같이 해결했다.

이 한 줄로 test.html 파일을 만듭니다.

<a href="intent://example.com/test?id=12345#Intent;scheme=myapp;package=com.mypackage;end">Open Your Application Directly</a>

여기 "example.com/test?id=12345"에 우리의 onCreate()방법 에서 의도 데이터로 전달되기를 원하는 것은 무엇이든 될 수 있으므로 예를 들어 ID를 제공했습니다.

"scheme" 의도 필터를 위해 menifest.xml에 동일한 스키마를 작성하는 데 필요한 모든 문자열이 될 수 있습니다.

"package" 동일한 체계를 가진 다른 앱과 구별하기위한 앱 패키지 이름입니다.

참고 : 앱이 기기에 설치되어 있지 않으면 주어진 유효한 패키지 이름으로 Google Playstore가 열립니다.

AndroidMenifest.xml 파일

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <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:scheme="myapp" />
            </intent-filter>

런처 활동에 지정한 모든 활동에 대한 인 텐트 필터를 추가 할 수 있습니다. <data android:scheme="myapp" />스키마 이름은 이전에 HTML 파일에 제공된 것과 동일해야합니다.

끝난! 장치의 모든 브라우저에서 html 파일을 열고 링크를 클릭하면 앱이 바로 열립니다.

다음 onCreate()과 같은 활동의 방법 에서 의도 데이터를 얻을 수 있습니다.

        Intent intent = getIntent();
        if (intent != null && intent.getData() != null) {
            Uri data = intent.getData();
            String path = data.getPath();
            String id = data.getQueryParameter("id");
            Log.d("ID", ": " + id);
        }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관