Xamarin에서 App Links for Android
5737 단어 아마린. 안 d 로이 dXamarinapplinks
소개
지금, 받고 있는 일로 처음으로 Xamarin 만지고 있으므로 잊지 않게 메모!
간단한 내용일지도 모르지만, Xamarin에서 App Links 구현의 공식 문서가 영어였던 것과 실제 디렉토리 등이 다르기도 했습니다.
하고 싶은 일
환경
절차
참고로 한 사이트
구현
intent filters 추가
Android 공식 사이트에서는 AndroidManifest.xml에 기술이라고 써 있습니다만, Xamarin에서는 MainActivity.cs에 기술한다.
[Activity (
//省略
)]
//インテントフィルター追加
[IntentFilter(new[] { Android.Content.Intent.ActionView },
AutoVerify = true,
Categories = new[]
{
Android.Content.Intent.CategoryDefault,
Android.Content.Intent.CategoryBrowsable
},
DataScheme = "http",
DataHost = "exsample.jp",
DataPathPrefix = "/myApp/")]
자동 인증을 수행하는 경우 인텐트 필터를 autoVerify=”true”
설정합니다.
수신된 의도에서 데이터 로드
MainActivity 클래스에 수신한 데이터를 읽어들이는 기술을 추가한다.
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{ //省略
//URI情報を取得
var action = Intent?.Action;
var data = Intent?.Data;
//省略
}
Digital Asset Links JSON 파일 작성
앱이 인텐트 필터에 사용되는 URL 도메인에 속하는지 확인해야 하므로 SHA256 지문이 필요합니다.
이번에는 디버깅을위한 키 스토어 지문을 사용합니다.
공식 사이트의 키 스토어 MD5 또는 SHA1 서명 찾기 의 페이지에는
~/.local/share/Xamarin/Mono for Android/debug.keystore
여기에 있다고 쓰고 있습니다만 내 환경에는 Xamarin
의 디렉토리내에 Mono for Android
의 디렉토리가 보이지 않았습니다.
잠시 찾았지만 포기하고 터미널에서 find하면 속공 발견! (내 1시간을 돌려주고...)
$ find ./ -name debug.keystore
다음의 3건의 결과로부터 해당하는 키스토어의 장소를 알았습니다.
.//project/Droid/debug.keystore
.//android_project/project/debug.keystore
.//.android/debug.keystore
그리고 공식 사이트에 실려있는 다음 명령을 사용하여 지문을 확인하십시오.
keytool -list -v -keystore "キーストアーの場所"/debug.keystore -alias androiddebugkey -storepass android -keypass android
실행하면 아래와 같이 확인할 수 있습니다.
別名: androiddebugkey
作成日: 2016/10/01
エントリ・タイプ: PrivateKeyEntry
証明書チェーンの長さ: 1
証明書[1]:
所有者: CN=Android Debug, O=Android, C=US
発行者: CN=Android Debug, O=Android, C=US
シリアル番号: 56d27636
有効期間の開始日: Mon Oct 1 10:00:00 JST 2016終了日: Fri Mar 1 10:00:00 JST 2044
証明書のフィンガプリント:
MD5: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
SHA1: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
SHA256: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
署名アルゴリズム名: SHA256withRSA
バージョン: 3
拡張:
#1: ObjectId: 2.5.29.14 Criticality=false
확인이 끝나면 SHA256
서명을 사용하여 Digital Asset Links JSON 파일을 만듭니다.
Digital Asset Links JSON 파일을 만들려면 아래 페이지에서 만들 수 있습니다.
참고로 다음 페이지에서 Digital Assets 파일이 올바르게 포맷되고 호스팅되는지 확인할 수도 있습니다.
Google Digital Asset Links
완성 된 것이 여기
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : { "namespace": "android_app", "package_name": "jp.co.exsample.myapp",
"sha256_cert_fingerprints": ["XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"] }
}]
JSON 파일 배치
만든 JSON 파일을 assetlinks.json
라는 이름으로 저장하고 웹 사이트에 .well-known
라는 디렉토리를 만들고 업로드합니다.
업로드할 수 있는지 URL을 두드려 확인.
https://exsample/.well-known/assetlinks.json
동작 확인
외부 앱에서 http://exsample.jp/myApp/
자신의 앱이 시작되면 성공입니다!
Reference
이 문제에 관하여(Xamarin에서 App Links for Android), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HisakoIsaka/items/1fe496741d47d5b1dfdd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[Activity (
//省略
)]
//インテントフィルター追加
[IntentFilter(new[] { Android.Content.Intent.ActionView },
AutoVerify = true,
Categories = new[]
{
Android.Content.Intent.CategoryDefault,
Android.Content.Intent.CategoryBrowsable
},
DataScheme = "http",
DataHost = "exsample.jp",
DataPathPrefix = "/myApp/")]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{ //省略
//URI情報を取得
var action = Intent?.Action;
var data = Intent?.Data;
//省略
}
~/.local/share/Xamarin/Mono for Android/debug.keystore
$ find ./ -name debug.keystore
.//project/Droid/debug.keystore
.//android_project/project/debug.keystore
.//.android/debug.keystore
keytool -list -v -keystore "キーストアーの場所"/debug.keystore -alias androiddebugkey -storepass android -keypass android
別名: androiddebugkey
作成日: 2016/10/01
エントリ・タイプ: PrivateKeyEntry
証明書チェーンの長さ: 1
証明書[1]:
所有者: CN=Android Debug, O=Android, C=US
発行者: CN=Android Debug, O=Android, C=US
シリアル番号: 56d27636
有効期間の開始日: Mon Oct 1 10:00:00 JST 2016終了日: Fri Mar 1 10:00:00 JST 2044
証明書のフィンガプリント:
MD5: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
SHA1: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
SHA256: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
署名アルゴリズム名: SHA256withRSA
バージョン: 3
拡張:
#1: ObjectId: 2.5.29.14 Criticality=false
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : { "namespace": "android_app", "package_name": "jp.co.exsample.myapp",
"sha256_cert_fingerprints": ["XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"] }
}]
Reference
이 문제에 관하여(Xamarin에서 App Links for Android), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HisakoIsaka/items/1fe496741d47d5b1dfdd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)