如何通过LINE应用程序使用URL方案iOS(Swift)和Android(Java)


通过使用

URL方案,可以将处于活动状态的应用程序跳过到另一个应用程序。这次,我将解释如何使用LINE进行编写。
例如,您可以在LINE上发送消息或启动相机。请参阅此处以获取LINE MESSAGE API的规范。

环境

Mac:Sierra 10.12.6
雨燕4.0
Xcode 9.2
Android Studio 2.3

假设

关于自定义URL方案和通用链接

如有关LINE的Message API的官方文档中所述,我使用指定的URL从另一个应用程序打开LINE,但是line://或* https://line.me/有两种类型,R / *。前者使用自定义URL方案,后者使用通用链接。
使用任何一个URL,如果已经安装了特定的应用程序(在这种情况下为LINE),则打开该应用程序的行为将不会更改,但是如果未安装,则该行为将会更改。
--line://?什么也没发生,或者错误页面打开
--https://line.me/R/?打开网络浏览器,并打开一个页面,请求下载LINE应用程序

line@android.gif

因此,如果您使用以下行之类的自定义URL方案://,则必须在无法打开时即未安装应用程序时设置行为,否则用户会说"什么?什么都没发生。"它可能像"否"。

LINE @链接

要将朋友添加到您的帐户,您需要知道帐户的URL。您可以在③添加朋友URL中找到说明。
简单地说,您可以在菜单的朋友屏幕上完成它吗?共享URL。

如何实现iOS

在Info.plist

中注册方案

Info.plist中的键LSApplicationQueriesSchemes将Type设置为Array,在其中添加一个项目,将Type设置为String,将value设置为line。
如果未设置,即使已安装指定的应用程序,也会发生错误。这是因为Apple已将用户的其他应用程序信息设为私有。因此,无法检查与该应用程序无关的另一个应用程序的安装信息。

将如下。
请注意,用于打开url的方法openURL在iOS 10或更高版本中已被弃用,因此open将在10或更高版本中使用。
另外,在使用URL方案时,请在未安装时编写处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//        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)

line@ios.gif

如何实现Android

代码(对于https / http)

您只需点击URI即可完成此操作。
这次,当我触摸textView时将其打开。

1
2
3
String uri = "https://line.me.R/"
textView.setAutoLinkMask(Linkify.ALL);
textView.setText(uri);

代码(使用方案名称时)

使用

目的。

1
2
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("line://"));startActivity(intent);

对于Android,您无需弄混Manifest文件。 (如果要创建自己的自定义URL,则需要使用它。)

参考

  • https://developers.line.me/ja/docs/messaging-api/using-line-url-scheme/
  • https://qiita.com/le_skamba/items/c9810a0e6df27097d502