微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决带有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 举报,一经查实,本站将立刻删除。