毕业设计 基于Flutter的聊天社交应用

编程入门 行业动态 更新时间:2024-10-24 04:34:59

<a href=https://www.elefans.com/category/jswz/34/1770099.html style=毕业设计 基于Flutter的聊天社交应用"/>

毕业设计 基于Flutter的聊天社交应用

文章目录

  • 0 项目说明
  • 1 开发环境
  • 3 界面效果图
  • 4 项目源码
  • 5 最后


0 项目说明

基于Flutter的聊天社交应用

提示:适合用于课程设计或毕业设计,工作量达标,源码开放

FYim(flutter-yim)是基于 Flutter 技术开发的一款跨平台聊天社交应用,主要包含 IM(仿微信)、电影(仿豆瓣)、小说(仿书旗小说)、音乐(仿网易云音乐)四大模块。


1 开发环境

$ flutter --version
Flutter 1.5.4-hotfix.2 • channel stable • .git
Framework • revision 7a4c33425d (2 weeks ago) • 2019-04-29 11:05:24 -0700
Engine • revision 52c7a1e849
Tools • Dart 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)
Android Studio 3.4
Build #AI-183.5429.30.34.5452501, built on April 10, 2019
JRE: 1.8.0_152-release-1343-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

FlutterBoost 需要修改源码:

  • BoostFlutterView.java ViewCompat android.support => androidx
  • BoostFlutterFragment.java Fragment android.support => androidx
  • BoostFlutterNativeView.java 去掉 detach 的 @Override

3 界面效果图

YIM主模块(仿微信)




Yim电影模块(仿豆瓣)


Yim音乐模块(仿网易云音乐)

4 项目源码

package com.devyy.flutter.yim.account;import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.Toast;import androidx.annotation.Nullable;import com.devyy.flutter.yim.PageRouter;
import com.devyy.flutter.yim.R;
import com.devyy.flutter.yim.YIMHelper;
import com.hyphenate.EMCallBack;
import com.hyphenate.chat.EMClient;/*** 用户登录页面* 环信登录功能** @author zhangyiyang* @since 2019-03-16*/
public class LoginActivity extends Activity {private static final String TAG = "==>LoginActivity";private EditText usernameEditText;private EditText passwordEditText;private boolean progressShow;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 若已经登录if (YIMHelper.getInstance().isLoggedIn()) {boolean autoLogin = true;// 跳转至主页面PageRouter.openPageByUrl(this, PageRouter.FLUTTER_PAGE_URL);return;}setContentView(R.layout.em_activity_login);usernameEditText = (EditText) findViewById(R.id.username);passwordEditText = (EditText) findViewById(R.id.password);// 如果用户名栏变更,重置密码输入栏usernameEditText.addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {passwordEditText.setText(null);}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void afterTextChanged(Editable s) {}});passwordEditText.setOnEditorActionListener((v, actionId, event) -> {if (actionId == EditorInfo.IME_ACTION_DONE|| ((event.getKeyCode() == KeyEvent.KEYCODE_ENTER)&& (event.getAction() == KeyEvent.ACTION_DOWN))) {login(null);return true;} else {return false;}});}/*** 登录*/public void login(View view) {String currentUsername = usernameEditText.getText().toString().trim();String currentPassword = passwordEditText.getText().toString().trim();if (TextUtils.isEmpty(currentUsername)) {Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show();return;}if (TextUtils.isEmpty(currentPassword)) {Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show();return;}// ProgressDialogprogressShow = true;final ProgressDialog pd = new ProgressDialog(LoginActivity.this);pd.setCanceledOnTouchOutside(false);pd.setOnCancelListener(dialog -> {Log.d(TAG, "EMClient.getInstance().onCancel");progressShow = false;});pd.setMessage("登陆ing……");pd.show();// 保存用户名YIMHelper.getInstance().setCurrentUserName(currentUsername);// call login methodLog.d(TAG, "EMClient.getInstance().login");EMClient.getInstance().login(currentUsername, currentPassword, new EMCallBack() {@Overridepublic void onSuccess() {Log.d(TAG, "登录成功!");// 加载本地会话和群组EMClient.getInstance().groupManager().loadAllGroups();EMClient.getInstance().chatManager().loadAllConversations();if (!LoginActivity.this.isFinishing() && pd.isShowing()) {pd.dismiss();}// 跳转至主页面PageRouter.openPageByUrl(LoginActivity.this, PageRouter.FLUTTER_PAGE_URL);}@Overridepublic void onProgress(int progress, String status) {Log.d(TAG, "登陆中···");}@Overridepublic void onError(final int code, final String message) {Log.d(TAG, "登录失败: " + code);if (!progressShow) {return;}runOnUiThread(() -> {pd.dismiss();Toast.makeText(getApplicationContext(), "登录失败:" + message,Toast.LENGTH_SHORT).show();});}});}/*** 注册*/public void register(View view) {startActivityForResult(new Intent(this, RegisterActivity.class), 0);}@Overrideprotected void onResume() {super.onResume();}
}

5 最后

更多推荐

毕业设计 基于Flutter的聊天社交应用

本文发布于:2024-02-17 18:36:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1695074.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:毕业设计   社交   Flutter

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!