1

私はウェブ開発者であり、フラッターの初心者です。いくつかのチュートリアルを見て、iOS と Android で正常に動作する Flutter Web ビュー アプリケーションを作成しました。しかし、tel:'0123456789', mailto:'abc@gmail.com', WhatsApp リンク ( https://wa.me/9712345678 ) をクリックすると、ページが見つかりません。これらの条件で外部アプリケーションを開きたいです。iOS と Android でサポートするフラッターでこのタスクを処理するにはどうすればよいですか? flutter webview プラグインを使用して、次のような URL を起動しました。

import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
import 'package:flutter/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]);
    return new MaterialApp(
      debugShowCheckedModeBanner: false,
      routes: {
        "/": (_) => new WebviewScaffold(
              url: "https://www.website.com/",
              appBar: null,
              withJavascript: true,
              hidden: true,
              enableAppScheme: true,
            ),
      },
    );
  }
}
4

1 に答える 1

1

https://pub.dev/packages/url_launcherflutter_url_launcherからインストール

import 'package:url_launcher/url_launcher.dart';

return WebView(

  ...

  navigationDelegate: (NavigationRequest request) {                
    
  if (request.url.contains('wa.me')) {
    launch(request.url); //This is where Whatsapp launches
    return NavigationDecision.prevent;
  }

  ...
});

ユーザーがネイティブアプリを使用して電話をかけたり電子メールを送信したりする場合tel:は、同じことができます。mailto:

return WebView(

  ...

  navigationDelegate: (NavigationRequest request) {                
    
  if (request.url.contains('mailto:')) {
    launch(request.url);
    return NavigationDecision.prevent;
  }

  if (request.url.contains('tel:')) {
    launch(request.url);
    return NavigationDecision.prevent;
  }

  ...
});
于 2022-01-25T07:55:41.137 に答える