App Links에 적합
Android App Links
정부 정보
https://developer.android.com/training/app-links/
간단한 이해는 한 서비스에 대해 웹과 안드로이드 응용 프로그램이 있다면
Android 터미널에서 다른 응용 프로그램에서 URL
https://(自分のWebサイト)...
으로 변환할 때 응용 프로그램이 설치되어 있으면 응용 프로그램으로 변환합니다.그렇습니다.
이루어지다
금번
http://my-android-server.appspot.com/html/list.html?page_no=1&open=2
그러면
https://play.google.com/store/apps/details?id=hm.orz.chaos114.android.tumekyouen
의 응용 프로그램 2단계 화면이 표시됩니다.
먼저, intent-filter 설치
정부 정보
https://developer.android.com/training/app-links/deep-linking
이번에는 안드로이드 매니페스트.xml에서 다음과 같이 설정합니다.
<activity
android:name=".modules.initial.InitialActivity"
android:screenOrientation="portrait">
<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:host="my-android-server.appspot.com"
android:pathPrefix="/html/list.html"
android:scheme="http"/>
</intent-filter>
</activity>
두 번째 intent-filterhttp://my-android-server.appspot.com/html/list.html
부터 시작하는 URL을 실행할 때라는 뜻이다.
이로써 다음 명령을 실행하면 프로그램이 시작됩니다.(조개껍질이 없을 수도 있음
"
또는 \
adb shell am start -W -a android.intent.action.VIEW -d "http://my-android-server.appspot.com/html/list.html?page_no=1\&open=2"
다만시작할 때 URL에서 모든 화면으로 이동
정부 정보
https://developer.android.com/training/app-links/deep-linking#handling-intents
intent-filter가 추가된Activity에서
getIntent
의 반환값을 이용하여 이전합니다.나는 이곳이 응용 프로그램에 따라 매우 큰 변화가 있을 것이라고 생각한다.
기본적으로 시도
getIntent().getData()
해보면null이면 일반적인 이동이 되고, 값이면 URL을 분석하여 대상의 화면으로 이동한다.이번에는 https://github.com/noboru-i/kyouen-android/commit/362ccff367b4bc24ac91b5c2abd9c130b34abee8#diff-ae9d6323f6b1c38043ae5931c6049b56처럼 실시되었다.
프로그램 선택 화면 건너뛰기
정부 정보
https://developer.android.com/training/app-links/verify-site-associations
이번 주제야.
우선 안드로이드 측 intent-filter에 추가
android:autoVerify="true"
했다. <intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:host="my-android-server.appspot.com"
android:pathPrefix="/html/list.html"
android:scheme="http"/>
</intent-filter>
이어서 서버 측.정부 정보
https://developer.android.com/training/app-links/verify-site-associations#web-assoc
(예를 들어 https://www.google.co.jp/.well-known/assetlinks.json 다른 명역의 물건은 참고할 수 있다.)
.well-known/assetlinks.json
라는 파일을 만들었습니다. 내부는 다음과 같습니다.[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "hm.orz.chaos114.android.tumekyouen.debug",
"sha256_cert_fingerprints":
["C0:D7:F9:34:D8:F7:15:06:FA:21:FA:0D:CF:09:E5:C4:E2:66:D4:11:5D:72:E0:D7:B8:38:F9:49:AB:C7:A4:F0"]
}
},
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "hm.orz.chaos114.android.tumekyouen",
"sha256_cert_fingerprints":
["6E:5A:DB:69:B4:C3:28:AC:DA:7F:00:A7:4D:5D:CD:F9:ED:87:0B:5D:D2:71:C5:89:64:DF:13:38:5A:5B:B8:A2"]
}
}
]
우선 공식 정보의 샘플을 복제하고 debug용 패키지 이름과 정식으로 사용되는 패키지 이름을 적용했다.이후 키스토어별로 실행
keytool -list -v -keystore app/cert/debug.keystore
등 붙여넣기SHA256
한 결과가 나왔다.이것은 https://my-android-server.appspot.com/.well-known/assetlinks.json 로 방문할 수 있습니다.
이번에는 서버 측이 GAE에서 이동하기 때문에 https://github.com/noboru-i/kyouen-python/pull/18/files로 설정되었습니다.
.well-known/assetlinks.json
이런 파일을 그대로 전송Directory matches ignore regex.
하면 업로드할 수 없기 때문에 물리적으로 well-known/assetlinks.json
,app로 변경됩니다.yaml 설정이 방문 목적지를 변경했습니다.)액세스https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://my-android-server.appspot.com&relation=delegate_permission/common.handle_all_urls
"debugString": "********************* ERRORS *********************\nNone!...
반납을 확인했습니다.이렇게 다시
adb shell am start -W -a android.intent.action.VIEW -d "http://my-android-server.appspot.com/html/list.html?page_no=1\&open=2"
의 경우 지금까지 대화상자에서 앱 선택이 나왔지만 이번에는 아무것도 묻지 않고 대상의 앱 화면을 보여준다.동작 확인
이 같은 대응을 해 플레이스토어에 앱을 공개했다.
https://twitter.com/noboru_i/status/1028173855754346496
트위터 앱에서 해당 트위터를 열고 URL을 클릭한 뒤 대화 상자가 나타나지 않고 무대 2 화면이 표시됐다.
Reference
이 문제에 관하여(App Links에 적합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/noboru_i/items/fd4634ecb326b3749ac0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)