app_luanch_handler 0.0.2 app_luanch_handler: ^0.0.2 copied to clipboard
App Luanch Handler that help user easy handle call back via app scheme
app_luanch_handler #
AppLuanchHandler help you easily to handle result from other apps, that result get back via onNewIntent
Getting Started #
To use this plugin, add app_luanch_handler
as a dependency in your pubspec.yaml file.
Usage #
import 'package:app_luanch_handler/app_luanch_handler.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final ValueNotifier<String>_result = ValueNotifier("Unknow");
late AppLuanchHandler applauncher;
@override
void initState() {
super.initState();
// Register handler
applauncher = AppLuanchHandler(onResult: (result) {
_result.value = result;
});
}
@override
void dispose() {
applauncher.dispose();
super.dispose();
}
// Launch app that using deeplink.
void launchApp() {
applauncher.launch("https://example.com/somethinggggg");
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ValueListenableBuilder<String>(
valueListenable: _result,
builder: (context, value, child) {
return Text(value);
},
),
ElevatedButton(
onPressed: () {
launchApp();
},
child: const Text("Luanch"),
),
],
),
),
),
);
}
}
Handle scheme #
If your app need to be hancle result back from external app, don't forget to add your scheme to AndroidManifest.xml
and Info.plist
.
Android #
Inside your AndroidManifest.xml
add this:
in your <activity>
tag:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="your_scheme" />
</intent-filter>
iOS #
Inside your Info.plist
add this:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>your_scheme</string>
</array>
</dict>
</array>
License #
This plugin is released under the MIT license.