Android 애플리케이션 간 호출:URL Scheme
URL Scheme 소개
Android의 사용자 정의 URL Scheme는 페이지 내 점프 프로토콜로 URL Router라고도 할 수 있으며, 웹 페이지를 여는 것과 같은 방식으로 루트를 통해 액티브를 여는 것이지 직접 인터내셔널 Intent 방식으로 점프하는 것이 아니다.이러한 암시적 intent 방법의 점프 장점은 다음과 같습니다.
위에서 말한 바와 같이 URL Scheme는 웹 페이지를 여는 것과 같은 방식으로 루트를 통해Activity를 열 수 있으며, 프로토콜 형식은 우리가 웹 페이지를 열고 입력한 웹 주소와 유사하다.
전체 URL Scheme 프로토콜 형식은 scheme, host, port, path 및query로 구성되며 구조는 다음과 같습니다.
://:/?
그 중에서 scheme는 안드로이드에서 흔히 볼 수 있는 프로토콜일 수도 있고 사용자 정의 프로토콜일 수도 있습니다.안드로이드에서 흔히 볼 수 있는 프로토콜은 콘텐츠 프로토콜, http 프로토콜, file 프로토콜 등을 포함한다. 사용자 정의 프로토콜은 사용자 정의 문자열을 사용할 수 있고 우리가 제3자의 응용을 시작할 때 주로 사용자 정의 프로토콜을 사용한다.
다음은 사용자 지정 프로토콜의 URI입니다.
xl://goods:8888/goodsDetail?goodsId=10011002
위의 경로 Scheme, Host, port, path,query를 통해 다음을 포함합니다.
URL Scheme의 사용 방법은 간단하게 말하면 manifest에서 Scheme 방식으로 시작할 수 있는 activity를 설정하는 것이다.호출이 필요할 때, Scheme 프로토콜의 URi를 Data 형식으로 Intent에 추가하고, 이 activity를 은밀하게 호출합니다.
1). 안드로이드 매니페스트에서.xml에서 탭에 설정Scheme 추가
위의 설정에서 보듯이MainActivity는 여러 개의 설정을 포함하고 첫 번째는 정상적인 시작이다. 즉, 응용 목록에서 시작하는 것이다.두 번째는 URL Scheme 방식으로 시작하는데 그 자체도 은식 Intent 호출의 일종이다. 다른 것은 속성을 추가하고 URL Scheme 프로토콜 형식을 u로 정의하는 것이다.rlschemel://auth_activity
URL Scheme 프로토콜 형식에서 URI를 구성하는 이러한 속성은 태그에서 선택할 수 있지만 다음과 같은 종속성이 있습니다.
주의해야 할 것은 intent-filter의 라벨은 path의 값을 지정할 때 그 안에서 어댑터*를 사용하여 부분적으로 일치하는 효과를 낼 수 있다는 것이다.
2). URL을 사용하여 Activity 시작
Uri data = Uri.parse("urlschemel://auth_activity");
Intent intent = new Intent(Intent.ACTION_VIEW,data);
// APP , APP APP
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivityForResult(intent, RESULT_OK);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, " APP, ",Toast.LENGTH_SHORT).show();
}
물론 웹 페이지에서 호출할 수 있다
새 응용 프로그램 열기
또는 JS에서 호출
window.location = "urlschemel://auth_activity";
3) URL Scheme의 유효성을 판단하는 방법
boolean checkUrlScheme(Intent intent){
PackageManager packageManager = getPackageManager();
List activities = packageManager.queryIntentActivities(intent, 0);
return !activities.isEmpty();
}
Home Launcher에서 하위 APP 숨기기
일부 보조적이고 독립된 앱을 Home Launcher에 숨기고 특정한 앱만 호출할 수 있도록 해야 할 때가 있다.이럴 때 URL Scheme 프로토콜을 이용해서 안드로이드 매니페스트를 설정할 수 있습니다.xml에서 탭은 다음과 같습니다
Home Launcher에 나열된 응용 프로그램 아이콘은 Activity와 함께 충족되어야 하기 때문입니다.
위 구성에는 category와 데이터 제한이 남아있기 때문에 일치하지 않으며 Home Launcher에 나타나지 않지만 URL Scheme를 사용하여 시작할 수 있습니다.
Uri data = Uri.parse("urlschemel://auth_activity");
Intent intent = new Intent(Intent.ACTION_MAIN,data);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
이렇게 하면 하나의 APP를 하나의 통일된 입구로 설정한 다음에 실제 수요에 따라 서로 다른 하위 APP, 즉 이른바 APP 업무를 구성화할 수 있다. URL Scheme는 그 중에서 중요한 역할을 하고 더욱 진일보한 토론회는 이후의 글에서 나타날 것이니 기대해 주십시오.
참조 자료:http://blog.csdn.net/iispring/article/details/48481793 http://blog.csdn.net/hb707934728/article/details/53196419 http://www.cnblogs.com/whoislcj/p/5825333.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.