我们还是按照之前的方法,跟着官方文档与示例去完成初步的学习,再基于示例代码进行适当简化,提取出自己需要的功能即可。

打开鸿蒙已经兼容的url_launcher插件的仓库地址:

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。https://gitcode.com/openharmony-tpc/flutter_packages/tree/br_url_launcher-v6.3.0_ohos/packages/url_launcher将代码打包下载到本地:

使用vs code打开ohos下的example目录:

将项目运行到鸿蒙设备上……

这里我就不多说了,之前的帖子都有分享,不明白地可以去看看。如果打包后设备打开应用白屏的处理方法我在之前的帖子里也有分享,链接如下:

flutter鸿蒙版imagecropper_ohos图片裁剪组件封装-CSDN博客文章浏览阅读312次,点赞5次,收藏7次。然后,我们执行flutter pub get、flutter run、去dev eco给ohos签名、flutter run。flutter 有个组件叫做 image_cropper ,近期这个组件也进行了鸿蒙化操作,只不过再使用的时候,我们需要基于这个插件。GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。还是老样子,我们借助官方文档和示例代码来研究怎么使用。重新执行flutter run,一会后应用运行在手机上。首先,我们将这个仓库下载到本地。 https://blog.csdn.net/2501_91974903/article/details/150065663?spm=1001.2014.3001.5502flutter鸿蒙使用image_picker_ohos拉起相册,选择图片、视频、拍照-CSDN博客文章浏览阅读84次。我们在做一些图片上传的场景时,会用到在相册选择图片上传的功能,想在flutter中实现这一功能还是比较简单的,不需要申请权限,即可拉起相册。需要用到的插件是image_picker。GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。GitCode - 全球开发者的开源社区,开源代码托管平台。选择适合你的项目版本的点进去,然后将代码下载到本地。以上是个人经验分享。 https://blog.csdn.net/2501_91974903/article/details/150206664?spm=1001.2014.3001.5502项目成功运行的画面如下:

接下来,就是根据示例代码做些简单的抽取和封装:

1、 main.dart

import 'package:flutter/material.dart';
import 'package:url_launcher_example/utils/launcher_util.dart';

void main(){
  runApp( // 
    MaterialApp( 
      home: MyWidget(),
    ),);
}

class MyWidget extends StatelessWidget {
  const MyWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title:  Text("演示页面"),
        centerTitle: true,
      ),
      body: Container(
        width: MediaQuery.of(context).size.width,
        child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: [
       ElevatedButton(onPressed: (){
        launcherUtil.makePhoneCall("10086");
       }, child: Text("给10086打电话",style: TextStyle(fontSize: 20),)
       ),
          ElevatedButton(onPressed: (){
        launcherUtil.launchInBrowser("https://www.baidu.com/");
       }, child: Text("浏览器打开百度",style: TextStyle(fontSize: 20),)
       ),
          ElevatedButton(onPressed: (){
        launcherUtil.launchAppGalleryDetails("store://appgallery.huawei.com/app/detail?id=com.tencent.tmgp.sgame.hw&channelId=SHARE");
       }, child: Text("打开应用市场的王者荣耀",style: TextStyle(fontSize: 20),)
       ),
          ElevatedButton(onPressed: (){
        launcherUtil.launchInWebView("https://blog.csdn.net/2501_91974903/article/details/150065663?spm=1001.2014.3001.5502");
       }, child: Text("跳转到原生web页面",style: TextStyle(fontSize: 20),)
       )
      ],
    ),
      )
    );
  }
}

2、launcher_util.dart 

Logo

加入「COC·上海城市开发者社区」,成就更好的自己!

更多推荐