通过使用
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应用程序
因此,如果您使用以下行之类的自定义URL方案://,则必须在无法打开时即未安装应用程序时设置行为,否则用户会说"什么?什么都没发生。"它可能像"否"。
LINE @链接
要将朋友添加到您的帐户,您需要知道帐户的URL。您可以在③添加朋友URL中找到说明。
简单地说,您可以在菜单的朋友屏幕上完成它吗?共享URL。
如何实现iOS
在Info.plist
中注册方案
用
Info.plist中的键
如果未设置,即使已安装指定的应用程序,也会发生错误。这是因为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) |
如何实现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