日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flutter 打开外部第三方应用

發布時間:2023/12/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flutter 打开外部第三方应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Flutter 打開外部第三方應用:url_launcher 插件的使用

https://pub.flutter-io.cn/packages/url_launcher/versions pubspec.yaml 文件中添加dev_dependencies:flutter_test:sdk: flutterurl_launcher: ^6.0.10

Scaffold中 SnackBar的使用

// 需要設置Scaffold的key才能彈出SnackBar return Scaffold(key: _scaffoldkey,//appBar: AppBar(title: Text(title),),body: ...,);

IOS 中需要添加白名單

Scheme 跳轉協議:

  • 如跳轉微信、QQ、高德地圖等,都是改變相應的url協議地址即可,跳轉原理參照原生開發使用的url scheme,比如一些常用的
  • 微信: weixin://
  • 京東: openapp.jdmoble://
  • 淘寶: taobao://
  • Chrome: googlechrome://
  • 百度地圖: baidumap://
  • 高德地圖:androidamap://、iosamap://

import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart';class OpenApplication extends StatelessWidget {List<Map> buttons = [{'title': '打開瀏覽器', 'scheme': 'https://www.baidu.com'},{'title': '打開地圖', 'scheme': 'geo:52.32.4.917'},{'title': '打開微信', 'scheme': 'weixin://'},{'title': '打開京東', 'scheme': 'openapp.jdmoble://'},{'title': '打開淘寶', 'scheme': 'taobao://'},{'title': '打開百度地圖', 'scheme': ' baidumap://'},];// 需要設置Scaffold的key才能彈出SnackBarvar _scaffoldkey = GlobalKey<ScaffoldState>();@overrideWidget build(BuildContext context) {String title = (ModalRoute.of(context)!.settings.arguments as Map)['desc'];// TODO: implement buildreturn Scaffold(key: _scaffoldkey,appBar: AppBar(title: Text(title),),body: Column(children: [Column(children: buttons.map((item) => _launchButton(title: item['title'],scheme: item['scheme'],context: context)).toList(),),// FlatButton(// onPressed: () {// print('SnackBar');// // final snackBar =// // new SnackBar(content: new Text('這是一個SnackBar'));// // Scaffold.of(context).showSnackBar(snackBar);// _scaffoldkey.currentState!.showSnackBar(// SnackBar(content: new Text('這是一個SnackBar')));// },// child: Text('SnackBar'))],));}void _launchURL() async {const url = 'https://baidu.com';if (await canLaunch(url)) {await launch(url);} else {}}void _launchMap() async {//androidconst url = 'geo:52.32.4.917'; //App 提供的 schemaif (await canLaunch(url)) {await launch(url);} else {}}Widget _launchButton({required String title,required String scheme,required BuildContext context}) {return Container(child: FlatButton(onPressed: () {_launchScheme(scheme: scheme, context: context);},child: Container(margin: EdgeInsets.only(top: 18),width: double.infinity,height: 50,decoration: BoxDecoration(color: Color(0xff88ff22),borderRadius: BorderRadius.circular(25),boxShadow: [BoxShadow(color: Colors.redAccent, blurRadius: 3, offset: Offset(0, 1))],),child: Center(child: Text(title,style: TextStyle(fontSize: 20,color: Colors.black,),),),),),);}void _launchScheme({required String scheme, required BuildContext context}) async {if (await canLaunch(scheme)) {await launch(scheme);} else {print('不支持打開');// 需要設置Scaffold的key才能彈出SnackBar_scaffoldkey.currentState!.showSnackBar(SnackBar(content: new Text('無法打開')));// Scaffold.of(context).showSnackBar(SnackBar(// content: Text('老孟,一枚有態度的程序員'),// ));}} }

總結

以上是生活随笔為你收集整理的Flutter 打开外部第三方应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。