OgHrefBuilder class abstract base

A utility for building Widget from url retrived MetaInfo.

MetaInfo only retrive once such that the metadata may not load correctly without retry.

Remarks for implementing in testing environment

If using OgHrefBuilder.new, OgHrefBuilder.updatable and OgHrefBuilder.runOnce in widget test, MetaFetch.instance must be assigned with MetaFetchTester or it's extended classes already in setUpAll:

import 'package:flutter_test/flutter_test.dart';
import 'package:oghref_builder/oghref_builder.dart';
import 'package:oghref_builder/testing.dart';


void main() {
  setUpAll(() {
    /* Uses mock url_launcher platform.

       `MockOgHrefClient.usesSample` can be replaced any function that linking
       to `MockClient`'s constructor.
    setupMockInstances(MockUrlLauncherPlatform(MockOgHrefClient.usesSample));

    // Attach instance with either MetaFetch.forTest() or custom classes extended from MetaFetchTester.
    MetaFetch.instance = MetaFetch.forTest()
      ..register(const OpenGraphPropertyParser())
      ..primaryPrefix = "og";
  });

  testWidget("Do test here", (tester) async {
    // Test codes
  });
}

If failed to process the mentioned steps and performs widget test, it yield assertion to stop OgHrefBuilder proceed with real network data which is unacceptable in HttpClient and always response with HTTP status code 400, no matter the given URL is accessible or not.

Inheritance

Constructors

OgHrefBuilder(Uri url, {required MetaInfoRetrivedBuilder onRetrived, required MetaInfoFetchFailedBuilder onFetchFailed, WidgetBuilder? onLoading, VoidCallback? onOpenLinkFailed, OpenLinkConfirmation? openLinkConfirmation, MultiMetaInfoHandler? multiInfoHandler, Key? key})
Create a builder for retriving metadata from url.
OgHrefBuilder.runOnce(Uri url, {required MetaInfoRetrivedBuilder onRetrived, required MetaInfoFetchFailedBuilder onFetchFailed, WidgetBuilder? onLoading, VoidCallback? onOpenLinkFailed, OpenLinkConfirmation? openLinkConfirmation, MultiMetaInfoHandler? multiInfoHandler, Key? key})
Create a builder for retiving the first received url and remain unchanged once it constructed until it removes from widget trees.
factory
OgHrefBuilder.updatable(Uri url, {required MetaInfoRetrivedBuilder onRetrived, required MetaInfoFetchFailedBuilder onFetchFailed, WidgetBuilder? onLoading, VoidCallback? onOpenLinkFailed, OpenLinkConfirmation? openLinkConfirmation, MultiMetaInfoHandler? multiInfoHandler, Key? key})
Create a builder for retiving received url and update content when the value changes on parent Widget.
factory

Properties

hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
multiInfoHandler MultiMetaInfoHandler?
Merge multiple protocols from MetaFetch.fetchAllFromHttp into single MetaInfo.
final
onFetchFailed MetaInfoFetchFailedBuilder
A Widget builder for handling errors during parsing url to MetaInfo and exception or error thrown during making request.
final
onLoading WidgetBuilder?
A Widget builder during fetching data.
final
onOpenLinkFailed VoidCallback?
A callback when the given url cannot opened.
final
onRetrived MetaInfoRetrivedBuilder
A Widget builder for handling MetaInfo retrived.
final
openLinkConfirmation OpenLinkConfirmation?
An event for getting consent of opening url by user which commonly launch a dialog to inform user.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
url Uri
URL of website.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<OgHrefBuilder>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited