带有React-Navigation的React-Native深度链接不起作用

问题描述

我一直在尝试通过react-navigation(v5)为我的应用设置深层链接,因此我按照他们的指示进行操作。我已经编辑了我的应用程序委托,以包括我需要的软件包以及我从其网站复制粘贴的Deeplinking / Universal方法。 之后,他们说要将该方案添加到项目的配置中,所以我按照他们说的去写 string frm = string.Format(@"http add urlacl url={0}:{1} user={2}\{3}",address,port,domain,user); Process.Start(new processstartinfo("netsh",frm) { Verb = "runas",CreateNowindow = true,WindowStyle = ProcessWindowStyle.Hidden,UseShellExecute = true }).WaitForExit(); 在终端中,我可以确认它是否有效,因为我可以 _hostConfiguration = new ExtendHttpSelfHostConfiguration( string.Concat(url,":",port)) { MaxReceivedMessageSize = int.MaxValue,MaxBufferSize = int.MaxValue }; _server = new HttpSelfHostServer(_hostConfiguration); _hostingTask = _server.OpenAsync(); _hostingTask.Wait(); 并返回

public class ExtendHttpSelfHostConfiguration : HttpSelfHostConfiguration
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="baseAddress"></param>
        public ExtendHttpSelfHostConfiguration(string baseAddress) : base(baseAddress) => Configure();
        /// <summary>
        /// 
        /// </summary>
        /// <param name="baseAddress"></param>
        public ExtendHttpSelfHostConfiguration(Uri baseAddress) : base(baseAddress) => Configure();

        

        /// <summary>
        /// 
        /// </summary>
        /// <param name="httpBinding"></param>
        /// <returns></returns>
        protected override BindingParameterCollection OnConfigureBinding(HttpBinding httpBinding)
        {
           
            if (BaseAddress.ToString().ToLower().StartsWith("https://"))
            {
                httpBinding.Security.Mode = HttpBindingSecurityMode.Transport;
            }
            return base.OnConfigureBinding(httpBinding);
        }

        private void Configure()
        {
            ConfigureCors();
            ConfigureRoutes();
            ConfigureFormatters();
            ConfigureFilters();
            ConfigureProviders();
            ConfigureSwagger();
            ConfigureLogger();
        }



        private void ConfigureSwagger()
        {
            #if DEBUG
            this.EnableSwagger(c =>
            {
                c.SingleApiVersion("v1","Host services");
                c.DescribeAllEnumsAsstrings();
                c.IncludeXmlComments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,string.Concat(Assembly.GetExecutingAssembly().GetName().Name + ".xml")));
            }).EnableSwaggerUi();
            #else
            #endif
        }

        private void ConfigureLogger() => XmlConfigurator.Configure();

        private void ConfigureProviders() => FluentValidationModelValidatorProvider.Configure(this);

        private void ConfigureFilters() => Filters.Add(new ValidationFilter());

        private void ConfigureCors() => this.EnableCors(new EnableCorsAttribute("*","*","*"));

        private void ConfigureRoutes() => this.MapHttpAttributeRoutes();

        private void ConfigureFormatters()
        {
            Formatters.JsonFormatter.SupportedMediaTypes.Clear();
            Formatters.XmlFormatter.SupportedMediaTypes.Clear();
            Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
            Formatters.XmlFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/xml"));
            Formatters.OfType<JsonMediaTypeFormatter>().First().SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        }
    }

现在我只需要通过运行npx uri-scheme add playlist --iosnpx uri-scheme list来进行测试,那么当我得到以下错误时:

› iOS: Schemes for config: ./ios/audvice-tvOS/Info.plist
› playlist://

› Android: Schemes for config: ./android/app/src/main/AndroidManifest.xml
› ${applicationId}://
› ${applicationId}://
› ${applicationId}://
› https://

有人遇到过吗?预先感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)