URL 구성표 사용 LINE 앱에서 iOS(Swift) 및 Android(Java)

URL 체계를 사용하면 활동 상태의 앱을 다른 앱으로 날릴 수 있습니다. 이번에는 LINE을 이용한 쓰기 방법에 대해 설명하겠습니다.
예를 들어 LINE에서 메시지를 보내거나 카메라를 시작할 수 있습니다. LINE MESSAGE API의 사양에 대해서는 여기 를 참고해 주십시오.

환경



Mac: Sierra 10.12.6
Swift 4.0
Xcode 9.2
Android Studio 2.3

전제



맞춤 URL 구성표 및 유니버설 링크 정보



LINE의 Message API에 대한 공식 문서 에 기재되어 있는 대로, 다른 어플리케이션으로부터 LINE을 열려면 지정의 URL를 사용합니다만, line://인가 * h tps : // / 네. 메/R/ *의 2가지 있습니다. 전자는 맞춤 URL 구성표를 사용하고 후자는 유니버설 링크를 사용합니다.
  어느 URL에서도 이미 특정 앱(이번에는 LINE)이 설치되어 있는 경우는, 앱이 열리는 거동은 변하지 않지만, 설치가 끝난 경우에는 거동이 바뀝니다.
- line://▶ 아무것도 하지 않는지, 에러 페이지가 열립니다
- https://line.me/R/ ▶ 웹 브라우저가 열리고 LINE 앱 다운로드를 요청하는 페이지가 열립니다.



그래서, line://와 같은 커스텀 URL 스킴을 이용하는 경우는, 열 수 없었을 때, 즉는 어플리를 인스톨 하고 있지 않을 때의 거동을 설정하지 않으면, 유저에게 「어라? 아무것도 일어나지 않는다」같다 될 수 있습니다.

LINE@ 링크



내 계정에 친구를 추가하려면 계정의 URL을 알아야 합니다. 여기의 ③ 친구 추가 URL에 설명이 실려 있습니다.
간단하게 쓰면, 메뉴의 친구 화면 ▶URL을 공유,로 할 수 있습니다.

iOS 구현 방법



Info.plist에 Scheme 등록



Info.plist에 LSApplicationQueriesSchemes 라는 키로 Type을 Array로 하고, 거기에 항목을 추가하고, Type을 String으로 value를 line으로 합니다.
  이것을 설정하지 않으면 지정한 앱이 설치되어도 오류가 발생합니다. 이는 Apple이 사용자의 다른 앱 정보를 개인정보 보호 대상으로 했기 때문입니다. 따라서 앱과 관계없는 다른 앱의 설치 정보를 확인할 수 없습니다.

코드



 아래와 같이 됩니다.
구현상 주의하는 것은, url을 여는 메소드 openURL이 iOS10이상에서 비추천이 되었기 때문에, 10이후에서는 open을 사용합니다.
또한, URL 스킴을 이용하는 경우는, 인스톨 완료가 아닌 경우의 처리도 쓰도록 합시다.

//        let urlscheme = "https://line.me/R/ti/p/hoghoge" // Universal links
let urlscheme = "line://ti/p/hoghoge" //カスタムURLスキーム

        // URL作成
        guard let url = URL(string: urlscheme) else {
            return
        }

        if UIApplication.shared.canOpenURL(url) {
            if #available(iOS 10.0, *) {
                UIApplication.shared.open(url, options: [:], completionHandler: { (succes) in

                })
            }else{
                UIApplication.shared.openURL(url)
            }
        }else {
            // LINEアプリが無い場合
            let alertController = UIAlertController(title: "エラー",
                                                    message: "LINEがインストールされていません",
                                                    preferredStyle: UIAlertControllerStyle.alert)
            alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default))
            present(alertController,animated: true,completion: nil)





Android 구현 방법



코드(https/http의 경우)



단순히 URI를 두드리는 것만으로 가능합니다.
이번에는 textView를 터치하면 열리게 되었습니다.
String uri = "https://line.me.R/"
textView.setAutoLinkMask(Linkify.ALL);
textView.setText(uri);

코드 (스키마 이름을 사용하는 경우)



Intent를 사용합니다.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("line://"));startActivity(intent);

Android는 Manifest 파일을 괴롭히지 않아도 괜찮습니다. (자작으로 맞춤 URL을 만드는 경우 놀아야합니다.)

참고


  • ぇぺぺrs. 네. 메 / 자 / 도 cs / 메사 긴 g - 아피 / 우신 g - 네 - rls chi / /
  • htps : // 이 m / p_s 또는 m / ms / c9810 A0E 6df27097d502
  • 좋은 웹페이지 즐겨찾기