【flutter h5微信开放标签拉起app】

分享到微信的h5网页中点击调起app
1.引入第三方包fluwx:3.13.1
2.在app首页注册微信开放sdk、调用获取开放标签的方法

_initFluwx() async {
	//注册
    await registerWxApi(appId: 'wxadlklakd5dkl6', doOnIOS: false);
    _getWxMsg();
  }
  
  //获取开放标签信息
  _getWxMsg() async {
    String wxMsg = await getExtMsg();
    if(wxMsg !=null){
      Map<String, dynamic> dataMap;
      if(wxMsg.contains('extmsg=')){
        String data = wxMsg.split("extmsg=")[1];
        dataMap = json.decode(data);
      }else{
        dataMap = json.decode(wxMsg);
      }

      var cateId = dataMap['cateId'];
      var articleId = dataMap['articleId'];
      if(cateId == 34 || cateId == '34'){
        if(mounted){
        //获取到需要的信息后跳转详情
          NavigatorUtil.push(PromotionPostDetail(id: '$articleId'));
        }
      }
    }
  }
  
//调用==============
 
  void initState() {
  _initFluwx();
  }


  void didChangeAppLifecycleState(AppLifecycleState state) {
    // TODO: implement didChangeAppLifecycleState
    super.didChangeAppLifecycleState(state);
    switch(state){
      case AppLifecycleState.inactive:
        print('======inactive');
        break;
      case AppLifecycleState.resumed:
        print('======resumed');
        _getWxMsg();
        break;
      case AppLifecycleState.paused:
        print('======paused');
        break;
      case AppLifecycleState.detached:
        print('======detached');
        break;
    }
  }

3.使用fluwx拉起flutter白屏问题
在app的AndroidMainfest.xml中添加
在这里插入代码片

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jarvan.fluwx_example">
    //这个=======(缺少这个导致白屏)
    <queries>
        <intent>
            <action android:name="${applicationId}.FlutterActivity" />
        </intent>
    </queries>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <application
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher"
        android:label="fluwx_example">

		//这个=======
        <meta-data
            android:name="weChatAppId"
            android:value="12345678" />
		//这个=======
        <meta-data
            android:name="handleWeChatRequestByFluwx"
            android:value="true" />

        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:launchMode="singleTop"
            android:exported="true"
            android:theme="@style/LaunchTheme"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            //这个=====
            <intent-filter>
                <action android:name="${applicationId}.FlutterActivity" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                //这个=======
                <data
                    android:host="${applicationId}"
                    android:path="/"
                    android:scheme="wechatextmsg" />
            </intent-filter>
        </activity>
       
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter是一个跨平台的移动应用开发框架,可以用一套代码同时在Android和iOS等多个平台上运行。所谓“仿微信”,指的是使用Flutter来开发一个类似微信的移动应用。 在使用Flutter开发类似微信的应用时,我们可以利用Flutter丰富的UI控件库来实现各种界面效果,例如列表、对话框、输入框等。同时,Flutter还提供了强大的动画库,可以实现平滑的动画过渡效果,使得用户在使用应用时有更好的体验感。 除了UI界面之外,Flutter还支持网络请求、数据库存储、消息推送等常用功能。这些功能的实现可以借助Flutter的开源插件库,提高开发效率。例如,可以使用Flutter提供的Dio插件来进行网络请求,使用Flutter的Shared Preferences插件来进行数据存储,使用Flutter的Firebase Messaging插件来实现消息推送功能。 另外,Flutter还提供了强大的跨平台性能,减少了在不同平台上开发和调试的工作量。使用Flutter开发的应用可以通过一套代码同时在Android和iOS上运行,大大简化了开发流程。 在仿微信的应用中,可以利用Flutter的多线程机制来处理耗时操作,保证应用的流畅性。同时,Flutter提供了热重载功能,可以在保持应用状态的同时进行代码的修改和调试,提高了开发效率。 综上所述,通过使用Flutter来仿微信的应用,我们可以充分利用Flutter丰富的UI库和插件库,以及跨平台的优势,开发出高效、流畅、具有丰富功能的移动应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值