uni links
This commit is contained in:
parent
421db2522b
commit
a246a3d423
|
@ -1,6 +1,4 @@
|
|||
PODS:
|
||||
- app_links (0.0.1):
|
||||
- Flutter
|
||||
- DKImagePickerController/Core (4.3.2):
|
||||
- DKImagePickerController/ImageDataManager
|
||||
- DKImagePickerController/Resource
|
||||
|
@ -48,18 +46,20 @@ PODS:
|
|||
- SDWebImage/Core (5.12.5)
|
||||
- SwiftyGif (5.4.3)
|
||||
- TOCropViewController (2.6.1)
|
||||
- uni_links (0.0.1):
|
||||
- Flutter
|
||||
- uri_to_file (0.0.1):
|
||||
- Flutter
|
||||
- url_launcher_ios (0.0.1):
|
||||
- Flutter
|
||||
|
||||
DEPENDENCIES:
|
||||
- app_links (from `.symlinks/plugins/app_links/ios`)
|
||||
- file_picker (from `.symlinks/plugins/file_picker/ios`)
|
||||
- Flutter (from `Flutter`)
|
||||
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
|
||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
|
||||
- uni_links (from `.symlinks/plugins/uni_links/ios`)
|
||||
- uri_to_file (from `.symlinks/plugins/uri_to_file/ios`)
|
||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||
|
||||
|
@ -72,8 +72,6 @@ SPEC REPOS:
|
|||
- TOCropViewController
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
app_links:
|
||||
:path: ".symlinks/plugins/app_links/ios"
|
||||
file_picker:
|
||||
:path: ".symlinks/plugins/file_picker/ios"
|
||||
Flutter:
|
||||
|
@ -84,13 +82,14 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||
permission_handler:
|
||||
:path: ".symlinks/plugins/permission_handler/ios"
|
||||
uni_links:
|
||||
:path: ".symlinks/plugins/uni_links/ios"
|
||||
uri_to_file:
|
||||
:path: ".symlinks/plugins/uri_to_file/ios"
|
||||
url_launcher_ios:
|
||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
app_links: 8941e7bac086136bae70d619141c36f258f4381d
|
||||
DKImagePickerController: b5eb7f7a388e4643264105d648d01f727110fc3d
|
||||
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
|
||||
file_picker: 817ab1d8cd2da9d2da412a417162deee3500fc95
|
||||
|
@ -101,6 +100,7 @@ SPEC CHECKSUMS:
|
|||
SDWebImage: 0905f1b7760fc8ac4198cae0036600d67478751e
|
||||
SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780
|
||||
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
||||
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
|
||||
uri_to_file: c4726881848febf4806f0a5707bd12903e02b0f0
|
||||
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
|
||||
|
||||
|
|
|
@ -17,9 +17,36 @@
|
|||
<string>Owner</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>niuhuan.pkz</string>
|
||||
<string>pkz</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>niuhuan.pkz</string>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
<string>public.content</string>
|
||||
<string>com.apple.package</string>
|
||||
</array>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>PKZ Archive</string>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>pkz</string>
|
||||
</array>
|
||||
<key>public.mime-type</key>
|
||||
<array>
|
||||
<string>text/vnd.niuhuan.pkz</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:app_links/app_links.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:pikapika/basic/Common.dart';
|
||||
|
@ -11,6 +10,7 @@ import 'package:pikapika/basic/enum/ErrorTypes.dart';
|
|||
import 'package:pikapika/screens/RegisterScreen.dart';
|
||||
import 'package:pikapika/screens/SettingsScreen.dart';
|
||||
import 'package:pikapika/screens/components/NetworkSetting.dart';
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
import 'package:uri_to_file/uri_to_file.dart';
|
||||
|
||||
import '../basic/Navigator.dart';
|
||||
|
@ -32,13 +32,13 @@ class _AccountScreenState extends State<AccountScreen> {
|
|||
late bool _logging = false;
|
||||
late String _username = "";
|
||||
late String _password = "";
|
||||
late StreamSubscription<Uri> _linkSubscription;
|
||||
late StreamSubscription<String?> _linkSubscription;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
final appLinks = AppLinks();
|
||||
// todo 不必要cancel 随机监听就好了, APP关闭时销毁, 考虑移动到APP里
|
||||
_linkSubscription = appLinks.uriLinkStream.listen((uri) async {
|
||||
_linkSubscription = linkStream.listen((uri) async {
|
||||
if (uri == null) return;
|
||||
RegExp regExp = RegExp(r"^.*\.pkz$");
|
||||
final matches = regExp.allMatches(uri.toString());
|
||||
if (matches.isNotEmpty) {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:app_links/app_links.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:pikapika/basic/config/Version.dart';
|
||||
import 'package:pikapika/screens/components/Badge.dart';
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
import 'package:uri_to_file/uri_to_file.dart';
|
||||
|
||||
import 'CategoriesScreen.dart';
|
||||
|
@ -20,18 +20,18 @@ class AppScreen extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _AppScreenState extends State<AppScreen> {
|
||||
late StreamSubscription<Uri> _linkSubscription;
|
||||
late StreamSubscription<String?> _linkSubscription;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
versionEvent.subscribe(_onVersion);
|
||||
final appLinks = AppLinks();
|
||||
// todo 不必要cancel 随机监听就好了, APP关闭时销毁, 考虑移动到APP里
|
||||
_linkSubscription = appLinks.uriLinkStream.listen((uri) async {
|
||||
_linkSubscription = linkStream.listen((uri) async {
|
||||
if (uri == null) return;
|
||||
RegExp regExp = RegExp(r"^.*\.pkz$");
|
||||
final matches = regExp.allMatches(uri.toString());
|
||||
final matches = regExp.allMatches(uri);
|
||||
if (matches.isNotEmpty) {
|
||||
File file = await toFile(uri.toString());
|
||||
File file = await toFile(uri);
|
||||
Navigator.of(context).push(MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
PkzArchiveScreen(pkzPath: file.path),
|
||||
|
|
|
@ -34,7 +34,7 @@ import 'package:pikapika/basic/config/Version.dart';
|
|||
import 'package:pikapika/basic/config/VolumeController.dart';
|
||||
import 'package:pikapika/basic/config/ShadowCategoriesMode.dart';
|
||||
import 'package:pikapika/screens/PkzArchiveScreen.dart';
|
||||
import 'package:app_links/app_links.dart';
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
import 'package:uri_to_file/uri_to_file.dart';
|
||||
import '../basic/config/ExportRename.dart';
|
||||
import 'AccountScreen.dart';
|
||||
|
@ -94,11 +94,10 @@ class _InitScreenState extends State<InitScreen> {
|
|||
await initAuthentication();
|
||||
autoCheckNewVersion();
|
||||
|
||||
final appLinks = AppLinks();
|
||||
String? initUrl;
|
||||
if (Platform.isAndroid || Platform.isIOS) {
|
||||
try {
|
||||
initUrl = (await appLinks.getInitialAppLink())?.toString();
|
||||
initUrl = (await getInitialUri())?.toString();
|
||||
// Use the uri and warn the user, if it is not correct,
|
||||
// but keep in mind it could be `null`.
|
||||
} on FormatException {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:app_links/app_links.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
|
@ -9,6 +8,7 @@ import 'package:pikapika/basic/Entities.dart';
|
|||
import 'package:pikapika/basic/Method.dart';
|
||||
import 'package:pikapika/screens/components/ContentBuilder.dart';
|
||||
import 'package:pikapika/screens/components/PkzComicInfoCard.dart';
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
import 'package:uri_to_file/uri_to_file.dart';
|
||||
|
||||
import '../basic/Navigator.dart';
|
||||
|
@ -33,18 +33,18 @@ class _PkzArchiveScreenState extends State<PkzArchiveScreen> with RouteAware {
|
|||
late String _fileName;
|
||||
late Future _future;
|
||||
late PkzArchive _info;
|
||||
StreamSubscription<Uri>? _linkSubscription;
|
||||
StreamSubscription<String?>? _linkSubscription;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
if (widget.holdPkz) {
|
||||
final appLinks = AppLinks();
|
||||
// todo 不必要cancel 随机监听就好了, APP关闭时销毁, 考虑移动到APP里
|
||||
_linkSubscription = appLinks.uriLinkStream.listen((uri) async {
|
||||
_linkSubscription = linkStream.listen((uri) async {
|
||||
if(uri == null) return;
|
||||
RegExp regExp = RegExp(r"^.*\.pkz$");
|
||||
final matches = regExp.allMatches(uri.toString());
|
||||
final matches = regExp.allMatches(uri);
|
||||
if (matches.isNotEmpty) {
|
||||
File file = await toFile(uri.toString());
|
||||
File file = await toFile(uri);
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
|
@ -95,7 +95,7 @@ class _PkzArchiveScreenState extends State<PkzArchiveScreen> with RouteAware {
|
|||
builder: (BuildContext context) => PkzComicInfoScreen(
|
||||
pkzPath: widget.pkzPath,
|
||||
pkzComic: _info.comics.first,
|
||||
holdPkz: true,
|
||||
holdPkz: widget.holdPkz,
|
||||
),
|
||||
));
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:app_links/app_links.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:pikapika/basic/Entities.dart';
|
||||
import 'package:pikapika/basic/Method.dart';
|
||||
import 'package:pikapika/screens/PkzReaderScreen.dart';
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
import 'package:uri_to_file/uri_to_file.dart';
|
||||
|
||||
import '../basic/Navigator.dart';
|
||||
|
@ -32,18 +32,18 @@ class PkzComicInfoScreen extends StatefulWidget {
|
|||
class _PkzComicInfoScreenState extends State<PkzComicInfoScreen>
|
||||
with RouteAware {
|
||||
PkzComicViewLog? _log;
|
||||
StreamSubscription<Uri>? _linkSubscription;
|
||||
StreamSubscription<String?>? _linkSubscription;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
if (widget.holdPkz) {
|
||||
final appLinks = AppLinks();
|
||||
// todo 不必要cancel 随机监听就好了, APP关闭时销毁, 考虑移动到APP里
|
||||
_linkSubscription = appLinks.uriLinkStream.listen((uri) async {
|
||||
_linkSubscription = linkStream.listen((uri) async {
|
||||
if (uri == null) return;
|
||||
RegExp regExp = RegExp(r"^.*\.pkz$");
|
||||
final matches = regExp.allMatches(uri.toString());
|
||||
final matches = regExp.allMatches(uri);
|
||||
if (matches.isNotEmpty) {
|
||||
File file = await toFile(uri.toString());
|
||||
File file = await toFile(uri);
|
||||
Navigator.of(context).push(MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
PkzArchiveScreen(pkzPath: file.path),
|
||||
|
|
|
@ -5,10 +5,8 @@
|
|||
import FlutterMacOS
|
||||
import Foundation
|
||||
|
||||
import app_links_macos
|
||||
import url_launcher_macos
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
AppLinksMacosPlugin.register(with: registry.registrar(forPlugin: "AppLinksMacosPlugin"))
|
||||
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||
}
|
||||
|
|
56
pubspec.lock
56
pubspec.lock
|
@ -8,41 +8,6 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.1+2"
|
||||
app_links:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: app_links
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.2.0"
|
||||
app_links_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: app_links_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
app_links_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: app_links_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
app_links_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: app_links_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
app_links_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: app_links_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
archive:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -467,6 +432,27 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
uni_links:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: uni_links
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.5.1"
|
||||
uni_links_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: uni_links_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
uni_links_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: uni_links_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.0"
|
||||
uri_to_file:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
|
@ -48,8 +48,8 @@ dependencies:
|
|||
crop_image: ^1.0.2
|
||||
image: ^3.1.3
|
||||
path: ^1.8.0
|
||||
app_links: ^3.2.0
|
||||
uri_to_file: ^0.2.0
|
||||
uni_links: ^0.5.1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
|
|
@ -6,12 +6,9 @@
|
|||
|
||||
#include "generated_plugin_registrant.h"
|
||||
|
||||
#include <app_links_windows/app_links_windows_plugin.h>
|
||||
#include <url_launcher_windows/url_launcher_windows.h>
|
||||
|
||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||
AppLinksWindowsPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("AppLinksWindowsPlugin"));
|
||||
UrlLauncherWindowsRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#
|
||||
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
app_links_windows
|
||||
url_launcher_windows
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue