Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 我正在尝试加载动态url作为初始url,而不是在webview中加载。若我将url放入tem var,并使用temp作为初始url,那个么它就会工作_Flutter_Flutter Layout_Flutter Dependencies_Flutter Design - Fatal编程技术网

Flutter 我正在尝试加载动态url作为初始url,而不是在webview中加载。若我将url放入tem var,并使用temp作为初始url,那个么它就会工作

Flutter 我正在尝试加载动态url作为初始url,而不是在webview中加载。若我将url放入tem var,并使用temp作为初始url,那个么它就会工作,flutter,flutter-layout,flutter-dependencies,flutter-design,Flutter,Flutter Layout,Flutter Dependencies,Flutter Design,在这里,我试图在webview中加载深度链接,首先在google中输入深度链接并将其重定向到应用程序,然后在webview中加载深度链接。如果我在webview中放置静态URL,比如var temp=“www.google.com”,然后使用temp var作为初始URL,它将加载google in应用程序。但我尝试将深度链接变量复制到字符串变量中,并在webview中使用临时变量作为初始URL,它不会在webview中加载动态链接。甚至我也将深度链接变量转换为字符串(将URI类型转换为字符串)

在这里,我试图在webview中加载深度链接,首先在google中输入深度链接并将其重定向到应用程序,然后在webview中加载深度链接。如果我在webview中放置静态URL,比如var temp=“www.google.com”,然后使用temp var作为初始URL,它将加载google in应用程序。但我尝试将深度链接变量复制到字符串变量中,并在webview中使用临时变量作为初始URL,它不会在webview中加载动态链接。甚至我也将深度链接变量转换为字符串(将URI类型转换为字符串)


运气好吗?运气好吗?
import 'dart:async';
import 'dart:convert';
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:firebase_dynamic_links/firebase_dynamic_links.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() {
  runApp(MaterialApp(
    title: 'Dynamic Links Example',
    routes: <String, WidgetBuilder>{
      '/': (BuildContext context) => _MainScreen(),
    },
  ));
}

class _MainScreen extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _MainScreenState();
}

class _MainScreenState extends State<_MainScreen> {

  String temp;
  @override
  void initState() {
    initDynamicLinks();
    super.initState();
  }

  Future initDynamicLinks() async {
    // 1. Get the initial dynamic link if the app is opened with a dynamic link
    final PendingDynamicLinkData data =
        await FirebaseDynamicLinks.instance.getInitialLink();

    // 2. handle link that has been retrieved
    _handleDeepLink(data);

    // 3. Register a link callback to fire if the app is opened up from the background
    // using a dynamic link.
    FirebaseDynamicLinks.instance.onLink(
        onSuccess: (PendingDynamicLinkData dynamicLink) async {
      // 3a. handle link that has been retrieved
      _handleDeepLink(dynamicLink);
    }, onError: (OnLinkErrorException e) async {
      print('Link Failed: ${e.message}');
    });
  }

  @override
  Widget build(BuildContext context) {
    return Material(
      child: Scaffold(
        appBar: AppBar(
          title: const Text('Dynamic Links Example'),
        ),
        body: Builder(builder: (BuildContext context) {
          return Center(
            child: WebView(
              initialUrl: temp, // dynamic url copy from deep link var it will not load in web view
              javascriptMode: JavascriptMode.unrestricted,
            ),
          );
        }),
      ),
    );
  }

  void _handleDeepLink(PendingDynamicLinkData data) {
    final Uri deepLink = data?.link;
    if (deepLink != null) {
      temp = deepLink.toString(); // here i had done type casting to uri to string 
      print('_handleDeepLink | deeplink: $deepLink');
    }
  }
}