브라우저에서 내 HTML 페이지의 링크를 클릭 할 때 내 사용자 지정 의도를 브로드 캐스트하고 싶습니다. 나는 안드로이드 시스템이 이것에 대해 "android.intent.action.VIEW"를 브로드 캐스트한다는 것을 알고 있으며 내 애플리케이션에서 이것을받을 수 있지만 이렇게하면 클릭 가능한 모든 링크에 대해 내 애플리케이션이 나열되므로 내 사용자 지정 의도 작업을 브로드 캐스트하고 싶습니다.
나는 이것을 다음과 같이 해결했다.
이 한 줄로 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] 삭제
몇 마디 만하겠습니다