Android 프로 그래 밍 은 링크 를 클릭 하여 앱 기능 예제 열기

3425 단어 Android링크APP
본 고 는 안 드 로 이 드 프로 그래 밍 이 링크 를 클릭 하여 앱 을 여 는 기능 을 실현 하 는 것 을 실례 로 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
안 드 로 이 드 에서 링크 를 클릭 해 앱 을 여 는 것 은 흔 한 요구 사항 이다.예 를 들 어 전자상거래 가 사용자 에 게 쿠폰 을 보 낸 후에 다음 문 자 를 자주 보 냅 니 다.특정한 쿠폰 이 귀하 의 계 정 에 보 냈 습 니 다.xxx 링크 를 클릭 하면 볼 수 있 습 니 다!이때 사용자 가 링크 를 클릭 하면 로 컬 앱 을 직접 열 고 해당 페이지 로 들어간다.
기능 구현:
1.manifest 에 해당 하 는 activity 에 intent-filter 를 추가 합 니 다.

<activity
   android:name=".TestActivity">
   <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="mywebsite.com"
        android:pathPrefix="/openApp"
        android:scheme="http" />
   </intent-filter>
</activity>

2.핸드폰 에 모 의 문자 메 시 지 를 보 내 고 링크 를 포함한다.http://mywebsite.com/openApp 핸드폰 은 일반적으로 링크 를 자동 으로 식별 할 수 있 습 니 다.링크 를 클릭 하면 시스템 에서 선택 상 자 를 팝 업 합 니 다.다음 과 같 습 니 다.

자신의 앱(AndroidTest)을 클릭 하면 시스템 이 자동 으로 AndroidTest 라 는 프로그램의 TestActivity 페이지 를 엽 니 다.
3.그러나 상기 방법 은 완벽 하지 않 습 니 다.사용자 가 브 라 우 저 를 선택 하여 이 링크 를 열 수 있 기 때 문 입 니 다!이 문 제 를 해결 하기 위해 scheme 속성 을 사용자 정의 로 변경 할 수 있 습 니 다.예 를 들 어:

<data
   android:host="mywebsite.com"
   android:pathPrefix="/openApp"
   android:scheme="myapp" />

이 때 대응 하 는 링크 주 소 는?myapp://mywebsite.com/openApp .핸드폰 로 컬 은 우리 만 의 프로그램 이 my app 이라는 협 의 를 식별 할 수 있 기 때문에 앱 을 직접 엽 니 다.그러나 여전히 문제 가 존재 한다.
(1)만약 에 이 링크 를 홈 페이지 에 올 려 놓 고 사용자 가 링크 를 클릭 한 후에 앱 을 열 기 를 원한 다 면 상기 방법 은 문제 가 없다.예 를 들 어 웹 페이지 에 다음 코드 를 추가 하면 됩 니 다.

<a href='myapp://mywebsite.com/openApp'>    APP</a>

(2)하지만 링크 를 문자 에 넣 으 면 안 됩 니 다.my app 이라는 프로 토 콜 시스템 의 문자 프로그램 도 식별 할 수 없 기 때문에 링크 스타일 로 표시 되 지 않 습 니 다.즉,사용자 가 직접 클릭 할 수 없다 는 것 입 니 다.
이 문 제 를 해결 하 는 방법 은 웹 페이지 의 방향 을 바 꾸 는 기능 을 사용 하 는 것 이다.예 를 들 어 문자 메시지 에서 링크 를 보 내 는 것 이다.http://abc.com/openApp 그리고 이 페이지 에 재 설정 을 추가 합 니 다.
사용 자 는 문자 메시지 에서 클릭 하면 브 라 우 저 로 링크 를 연 뒤 자동 으로 자신의 앱 을 연다.
4.마지막 으로 TestActivity 에서 링크 url 이 전달 하 는 인 자 를 가 져 올 수 있 습 니 다.

Intent intent = getIntent();
String action = intent.getAction();
if (Intent.ACTION_VIEW.equals(action)) {
   Uri uri = intent.getData();
   if (uri != null) {
     String name = uri.getQueryParameter("name");
     String age = uri.getQueryParameter("age");
     Toast.makeText(this, "name=" + name + ",age=" + age, Toast.LENGTH_SHORT).show();
   }
}

PS:AndroidManifest.xml 파일 관련 속성 기능 은 본 사이트 의 온라인 도 구 를 참고 할 수 있 습 니 다.
Android Manifest 기능 과 권한 설명:
http://tools.jb51.net/table/AndroidManifest
더 많은 안 드 로 이 드 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기