내 앱 내부에 딥 링크를 구현 중이며 내 앱 내부에서 딥 링크를 여는 방법이나 예를 찾을 수 없습니다. 예 : 특정 배너를 열면 myapp://game/1
링크가 열리 며 내 앱 내부에서 다른 활동으로 연결됩니다. 어떻게해야합니까?앱에서 안드로이드 딥 링크 열기
2
A
답변
0
매니페스트에서 딥 링크 체계를 등록해야합니다.
<activity android:name=".DeepLinkingActivity"
android:configChanges="orientation|screenSize" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="myapp" />
</intent-filter>
</activity>
정의 된 구성표가있는 링크를 클릭하면 DeepLinkingActivity가 열립니다. 그리고 활동에 무엇을 처리 :
private final String GAME_LINK = "game";
private final String VIDEO_LINK = "video";
private static String PASSED_LINK = "PassedLink";
public static Intent createIntent(String link, Context context) {
Intent intent = new Intent(context, DeepLinkingActivity.class);
intent.putExtra(PASSED_LINK, link);
return intent;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
String host;
String link = getIntent().getStringExtra(PASSED_LINK);
if(TextUtils.isEmpty(link)) {
Intent intent = getIntent();
if (intent.getData() != null) {
Uri data = intent.getData();
host = data.getHost();
} else {
// No links
}
} else {
Uri data = Uri.parse(link);
host = data.getHost();
}
if(host.equals(GAME_LINK)) {
// myapp://game/
// Do something
} else if(host.equals(VIDEO_LINK)){
// myapp://video/
// Do something
} else {
// Do something
}
...
}
그런 다음 당신은 당신의 위젯에서 호출 할 수 있습니다 : 당신이 웹보기 링크가있는 경우
widget.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(DeepLinkingActivity.createIntent("linik_for_this_wiget"), getContext());
}
});
당신은 또한
shouldOverrideUrlLoading
을 무시할 수있는이 통과 : HTTPS : //docs.adjust.com/en/deeplinking/ –조정을 사용하고 있지 않습니다. – Datenshi
앱 안에서도 인 텐트를 시작해야합니다. –