[Flutter] LINEとTwitterにシェアする 時のコードの最適解がこちら!

[Flutter] LINEとTwitterにシェアする 時のコードの最適解がこちら! Flutter
[Flutter] LINEとTwitterにシェアする 時のコードの最適解がこちら!


本編

ライン、Twitter には、複数のシェア用 REST API が用意されているが、Android, iOSにネイティブ対応されたものを以下に示した。(その他のAPI は、ディープリンク対応していなかったり、ハッシュタグが機能しなかったりする。)

Future<void> shareByLine(String text) async {
  final lineUrl = Uri(
    scheme: 'https',
    host: 'line.me',
    path: 'R/msg/text/' + text,
  );
  await launchUrl(lineUrl, mode: LaunchMode.externalApplication);
}

Future<void> shareByTwitter(String text) async {
  final tweetQuery = <String, dynamic>{
    'text': text,
    // 'url': 'https://...',
    // 'hashtags': ['tag1', 'tag2'],
  };

  final twitterUrl = Uri(
    scheme: 'https',
    host: 'twitter.com',
    path: 'intent/tweet',
    queryParameters: tweetQuery,
  );

  await launchUrl(twitterUrl, mode: LaunchMode.externalApplication);
}

String? encodeQueryParameters(Map<String, String> params) {
  return params.entries
      .map((MapEntry<String, String> e) =>
          '${Uri.encodeComponent(e.key)}=${Uri.encodeComponent(e.value)}')
      .join('&');
}

カンペキ!

コメント

タイトルとURLをコピーしました