내 웹 사이트에서 내 앱이 설치된 경우 링크를 만드는 방법

Dec 24 2020

내가 이루고 싶은 것

사용자가 내 웹 사이트의 링크를 클릭하면 내 앱 (설치된 경우)의 사용자 특정 링크로 연결되기를 원합니다. 설치되어 있지 않은 경우 브라우저에서 링크하도록 사용자를 안내합니다.

예:

사용자는 www.myapp.com/someplaceinmyapp 링크가 포함 된 이메일을받습니다 . 설치되어 있으면 내 앱의 해당 페이지로 이동합니다. 그렇지 않은 경우 브라우저에서 해당 페이지로 이동하십시오.

내 앱의 모든 페이지에 적용됩니다. 따라서 이것은 내 웹 페이지의 모든 링크에 적용됩니다.

내 질문

이것에 대한 특정 이름이 있습니까? 딥 링크와 앱 링크에 대해 알고 있지만 어느 것이 나에게 적합한 지 잘 모르겠습니다. 

이것이 가능할까요? 지금은 가능할지 모르겠습니다. 

이에 대한 코드가 웨비 지 또는 앱에 있습니까? 예 : 자바 스크립트 또는 Kotlin 또는 매니페스트 파일의 항목

어떻게해야합니까? 이것은 아마도 내가 가장 필요한 것입니다.

메모

내 웹 페이지에 "앱 사용"이라는 팝업 (브라우저에서만)이 표시되는 것이 있습니다. 설치되지 않은 경우 Play 스토어로 이동합니다. 설치되어 있으면 내 앱에서 내 웹 사이트의 홈페이지로 이동합니다. 나는 여기 에서 가장 많은 표 (승인 된 표가 아님)를 사용하여 답변을 사용하여 수행하는 방법을 찾았 으므로 내 매니페스트에 다음이 있습니다.

        <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:scheme="http"
                android:host="www.myapp.com"
                android:pathPrefix="/install.html" />
        </intent-filter>

내 질문에 추가하고 싶은 것이 있으면 기꺼이 추가하겠습니다.

답변

SamChen Dec 25 2020 at 02:55

URL에서 특정 Activity또는 Fragment앱을 입력하려면 탐색 구성 요소의 딥 링크 를 사용하는 것이 좋습니다.

1. 탐색 리소스 파일에 Url 딥 링크를 추가합니다 (속성 패널에서) :

<fragment
    android:id="@+id/studentEditorFragment"
    android:name="com.example.roomtest.studentEditor.StudentEditorFragment"
    android:label="StudentEditorFragment"
    tools:layout="@layout/fragment_student_editor">

    <argument
        android:name="studentId"
        app:argType="long" />

    <deepLink
        android:id="@+id/deepLink"
        app:uri="www.example.com/roomTest/{studentId}" />       //here, company domain name followed by application path or argument

</fragment>

2. AndroidManifest파일에 탐색 속성 추가 :

<activity android:name=".MainActivity">                 //【inside the "<activity>" tag】
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <nav-graph android:value="@navigation/navigation" />        //here
</activity>

3. 웹 브라우저 또는 문자 메시지의 링크를 사용합니다. "www.example.com/roomTest/-1"

  • 여러 인수를 전달하려면 "www.example.com/roomText/-1&true"와 같이 "&"로 연결하십시오 (메시지에 따라 xml에서 "&"형식 변경).

  • 유용한 비디오 : https://www.youtube.com/watch?v=hEJ78_KLcfA

  • 유용한 자료 : https://developer.android.com/guide/navigation/navigation-deep-link

  • 딥 링크의 백 스택 동작 : https://stackoverflow.com/a/50359375/3466808

Amy Jan 06 2021 at 07:01

이 작업을 수행하는 방법은 Android 스튜디오의 도구-> 앱 링크 도우미에서 찾을 수있는 앱 링크 도우미를 사용하는 것입니다. 이것은 당신이 그것을 열었을 때 측면에서 볼 수 있습니다 :

1 단계

"URL 매핑 편집기 열기"를 클릭 한 다음 URL 매핑을 추가합니다 ( "+"클릭). 호스트에서 웹 사이트 링크를 넣으십시오. 예 :https://www.example.com. 경로의 경우 선택 상자에서 "경로"만 선택하고 유형 상자에는 아무것도 입력하지 않습니다.

2 단계

활동 선택 버튼은 Kotlin에서 작동하지 않으므로 수동으로 입력해야하는 코드는 다음과 같습니다.

    override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    handleIntent(intent)
}

private fun handleIntent(intent: Intent) {
    val wbWebView = findViewById<View>(R.id.your_webview) as WebView
    val appLinkAction = intent.action
    val appLinkData = intent.data
    if (Intent.ACTION_VIEW == appLinkAction && appLinkData != null) {
            wbWebView.loadUrl(appLinkData.toString())
    } else {
        // default link that it goes to when opening app
        wbWebView.loadUrl("https://www.example.com")
    }
}

그리고 onCreate에서 handleIntent(intent)

3 단계

"디지털 자산 링크 파일 생성기 열기"를 클릭합니다. 대부분의 정보는 이미 채워져 있으므로 "디지털 자산 링크 파일 생성"을 클릭 할 수 있습니다. 웹 사이트에 ".well-known"이라는 폴더를 만든 다음 "assetlinks.json"이라는 파일을 넣고 거기에 미리보기를 붙여 넣습니다. 그래서 당신이 갈 때https://www.yourwebsite.com/.well-known/assetlinks.json디지털 자산 링크 파일을 볼 수 있어야합니다. 다른 웹 사이트 디지털 자산 링크 파일도 볼 수 있습니다. Google처럼https://www.google.com/.well-known/assetlinks.json.

그런 다음 "연결 및 확인"단추를 클릭하십시오. 모든 것이 잘되면 단추 아래에 다음과 같이 표시됩니다.

4 단계

테스트 할 시간입니다! 계속해서 "앱 링크 테스트"를 클릭하고 웹 사이트의 URL을 입력하십시오. 모든 것이 잘되면 명확성 대화가 표시되지 않아야합니다.

또한 링크가 포함 된 이메일을 직접 보내서 추가 테스트를 수행하고 싶습니다.

메모

웹 사이트에서 http 대신 https를 사용하는 경우에만 App Links Assistant를 사용할 수 있습니다.

android:launchMode="singleTask"매니페스트의 액티비티 태그에 추가 했습니다. 즉, 이메일에서 웹 사이트의 링크를 클릭하면 새 창에서 열립니다.

여기 에 비디오가 포함 된 문서가 있습니다 (Java를 사용하고 있음을 명심하십시오)

AlphaOne Dec 24 2020 at 10:43

앱에서 Android 앱 링크를 사용하세요. 올바르게 구현되면 사용자는 앱의 지정된 대상으로 직접 이동됩니다.

이 문서에서 이에 대한 추가 정보 :

Android 앱 링크 확인

암시 적 딥 링크 만들기