Flutter 앱 내에서 링크 열기

15692 단어 iosandroidflutterdart
이전 게시물에 이어. 때때로 우리는 사용자가 앱의 링크와 상호 작용할 수 있기를 원할 수 있습니다. 사용자를 기본 웹 브라우저 앱으로 보낼 수 있지만 앱 사용 시간을 늘리기 위해 앱 URL 시작 프로그램에 포함할 수 있습니다. 이것은 앱의 링크에 대한 일종의 웹 보기 속성입니다.



시작하자



새로운 플러터 프로젝트를 생성합니다. 내 launcher_app를 호출했습니다.

flutter create launcher_app


  • 그런 다음 선택한 코드 편집기에서 엽니다.
  • 그런 다음 url_launcher 플러그인을 추가합니다.

  • # This installs the latest version for us.
    url_launcher:
    


  • 그런 다음
    AndroidManifest.xml
    파일에 이 코드 줄을 추가합니다. 주석은 각 의도가 수행하는 작업을 설명합니다.

  • <queries>
      <!-- If your app checks for https support -->
      <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="https" />
      </intent>
       <!-- If your app checks for http support -->
      <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="http" />
      </intent>
       <!-- If your app checks for SMS support -->
      <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="sms" />
      </intent>
      <!-- If your app checks for call support -->
      <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="tel" />
      </intent>
    </queries>
    


  • 그런 다음
    Info.plist
    파일에 이 코드 줄을 추가합니다.

  • <key>LSApplicationQueriesSchemes</key>
        <array>
            <string>https</string>
            <string>http</string>
            <string>sms</string>
            <string>tel</string>
        </array>
    


  • 그런 다음 홈 화면을 만들고 다음으로 가져옵니다.
    main.dart



  • import 'package:flutter/material.dart';
    import 'package:launcher_app/home.dart';
    
    void main() {
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({Key? key}) : super(key: key);
    
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Launcher App',
          debugShowCheckedModeBanner: false,
          theme: ThemeData(
            primarySwatch: Colors.teal,
          ),
          home: const HomeScreen(),
        );
      }
    }
    


  • 그런 다음 홈 화면을 만들고 3개의 높은 버튼을 추가합니다. 가장 먼저 링크를 엽니다. 두 번째는 전화를 걸고 세 번째는 메시지를 보냅니다.

  • import 'package:flutter/material.dart';
    import 'package:url_launcher/url_launcher.dart';
    
    class HomeScreen extends StatefulWidget {
      const HomeScreen({Key? key}) : super(key: key);
    
      @override
      State<HomeScreen> createState() => _HomeScreenState();
    }
    
    class _HomeScreenState extends State<HomeScreen> {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text('Codenjobs app'),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                ElevatedButton(
                  onPressed: () async {
                    String url = 'https://codenjobs.com/';
                    final parseUrl = Uri.parse(url);
    
                    if (await canLaunchUrl(parseUrl)) {
                      await launchUrl(parseUrl,
                          mode: LaunchMode.inAppWebView,
                          webViewConfiguration: const WebViewConfiguration(
                            enableJavaScript: true,
                          ));
                    }
                  },
                  child: const Text('Open Link'),
                ),
                ElevatedButton(
                  onPressed: () async {
                    String url = 'tel:+233803458767';
                    final parseUrl = Uri.parse(url);
    
                    if (await canLaunchUrl(parseUrl)) {
                      await launchUrl(
                        parseUrl,
                      );
                    }
                  },
                  child: const Text('make phone call'),
                ),
                ElevatedButton(
                  onPressed: () async {
                    String url = 'sms:+233803458767';
                    final parseUrl = Uri.parse(url);
    
                    if (await canLaunchUrl(parseUrl)) {
                      await launchUrl(
                        parseUrl,
                      );
                    }
                  },
                  child: const Text('Send Message'),
                ),
              ],
            ),
          ),
        );
      }
    }
    


    첫 번째 버튼은 inappwebview에서 codenjobs 웹사이트 링크를 열고 javascript를 활성화합니다.



    이것이 이 기사의 전부입니다.
    원래 codenjobs.com에 게시됨

    https://github.com/Obikwelu/launcher_app에서 소스 코드를 얻을 수 있습니다.

    codenjobs에서 저를 팔로우하는 것을 잊지 마세요.
    Codenjobs는 개발자가 더 많은 일자리를 확보할 수 있도록 블록체인 및 암호화폐 공간에 생태계를 구축하고 있습니다. 여기about 페이지에서 코드 및 작업에 대해 자세히 알아볼 수 있습니다. 암호화에 정통한 경우 백서를 읽고 자세한 내용을 알고 프로젝트를 따를 수 있습니다. 코드 및 작업에 대한 최신 업데이트를 받으려면 아래 링크를 클릭하여 소셜 미디어 핸들에 가입하세요.

    [x] Telegram : https://t.me/codenjobs

    [엑스] :

    [x] Discord : https://discord.gg/eWTXzPrsJ3

    좋은 웹페이지 즐겨찾기