Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save henriquepinheiro84/9069c6fee47842370d51345edf27e55b to your computer and use it in GitHub Desktop.
Save henriquepinheiro84/9069c6fee47842370d51345edf27e55b to your computer and use it in GitHub Desktop.
Estou fazendo um modulo flutter em um app android no entanto não estou conseguindo enviar dados para o módulo. Alguém já passou por isso e conseguiu resolver?
import 'package:app_pratico_flutter_module/pages/nova_pagina.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:toast/toast.dart';
void main() {
// runApp(
// choseWidget(window.defaultRouteName),
// );
runApp(MaterialApp(
title: "Teste",
home: HomePage(),
));
}
Widget choseWidget(String route) {
switch (route) {
case "r1":
return MyfluterView();
default:
return Center(
child: Text("Unown route"),
);
}
}
class MyfluterView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
static const plataform = const MethodChannel('demo.app.flutter.mensagem');
String _message = "Sem mensagem ainda";
@override
void initState() {
_getMessage().then((String message){
Toast.show(message ?? "mensagem nula", context, duration: Toast.LENGTH_LONG);
setState(() {
_message = message;
Toast.show(message ??"teste", context);
});
});
}
Future<String> _getMessage() async {
String value;
try {
value = await plataform.invokeMethod('getMessage');
Toast.show(value, context);
} catch(e) {
print(e);
Toast.show(e.toString(), context);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Card(
color: Colors.green,
shape: RoundedRectangleBorder(),
child: Center(
child: FlatButton(
onPressed: () {
Navigator.push(context,
MaterialPageRoute(builder: (context) => MyHomePage()));
},
child: Text(_message ?? "Não recebeu mensagem")),
),
),
floatingActionButton: FloatingActionButton(
backgroundColor: Colors.white,
onPressed: () {
_getMessage().then((String message){
Toast.show(message ?? "mensagem nula", context, duration: Toast.LENGTH_LONG);
setState(() {
_message = message;
Toast.show(message ??"teste", context);
});
});
// Navigator.push(
// context, MaterialPageRoute(builder: (context) => MyHomePage()));
},
child: Icon(Icons.add),
),
);
}
}
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.Toast;
import io.flutter.app.FlutterActivity;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.view.FlutterView;
import quadritech.qclass.R;
public class FlutterTestActivity extends FlutterActivity {
private static final String CHANNEL = "demo.app.flutter.mensagem";
private View flutterView;
private FrameLayout.LayoutParams frameLayout;
private String sharedText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flutter_test);
findViewById(R.id.btn_abre_flutter).setOnClickListener(view -> abreFlutter());
// this.flutterView = Flutter.createView(FlutterTestActivity, this,"r1");
//
// this.frameLayout = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(new MethodChannel.MethodCallHandler() {
@Override
public void onMethodCall(@NonNull MethodCall methodCall, @NonNull MethodChannel.Result result) {
if (methodCall.method.equals("getMessage")) {
String mensagem = "Olá vindo do android";
result.success(mensagem);
Toast.makeText(FlutterTestActivity.this, mensagem, Toast.LENGTH_LONG).show();
}
}
});
}
private void abreFlutter() {
startActivity(new Intent(FlutterTestActivity.this, NovaActivity.class));
Toast.makeText(this, "Testando botão", Toast.LENGTH_LONG).show();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment