Ejemplo n.º 1
0
        /// <summary>
        /// URLスキームを追加します
        /// </summary>
        /// <param name="path"> 出力先のパス </param>
        public static void AddIOSUrlScheme(string path)
        {
#if UNITY_IOS
            string        plistPath = Path.Combine(path, "Info.plist");
            PlistDocument plist     = new PlistDocument();

            // 読み込み
            plist.ReadFromFile(plistPath);

            PlistElementArray urlTypeArray   = plist.root.CreateArray("CFBundleURLTypes");
            PlistElementDict  urlTypeDict    = urlTypeArray.AddDict();
            PlistElementArray urlSchemeArray = urlTypeDict.CreateArray("CFBundleURLSchemes");

            SDKConfiguration sdkConfiguration = UrlSchemeEditTool.LoadSDKConfiguration();
            if (sdkConfiguration == null)
            {
                return;
            }

            var urlScheme = sdkConfiguration.IOSUrlScheme;
            var Validator = new UriSchemeValidator(urlScheme);
            if (!Validator.Validate())
            {
                Debug.LogError("iOSのURLスキーマが不正なのでURLスキーマの追加処理をスキップしました");
                return;
            }

            Uri uri;
            try
            {
                uri = new Uri(urlScheme);
            }
            catch (UriFormatException)
            {
                return;
            }

            // URLスキームを追加
            urlSchemeArray.AddString(uri.Scheme);

            // 書き込み
            plist.WriteToFile(plistPath);
#endif
        }
Ejemplo n.º 2
0
        private void ProcessForAndroidUrlScheme()
        {
            if (!AndroidManifestFile.IsFileExists())
            {
                AndroidManifestFile.CopyFromExample();
            }

            var manifestXml = AndroidManifestFile.MakeManifestXml();
            SDKConfiguration sdkConfiguration = UrlSchemeEditTool.LoadSDKConfiguration();

            if (sdkConfiguration == null)
            {
                return;
            }

            var urlScheme = sdkConfiguration.AndroidUrlScheme;
            var Validator = new UriSchemeValidator(urlScheme);

            if (!Validator.Validate())
            {
                Debug.LogError("AndroidのURLスキーマが不正なのでURLスキーマの追加処理をスキップしました");
                return;
            }

            Uri uri;

            try
            {
                uri = new Uri(urlScheme);
            }
            catch (UriFormatException)
            {
                return;
            }

            manifestXml.UpdateUrlScheme(uri);
            manifestXml.Save(AndroidManifestFile.AndroidManifestPath);
        }
Ejemplo n.º 3
0
 public AndroidUriSchemeValidator(SDKConfiguration configuration)
 {
     _validator = new UriSchemeValidator(configuration.AndroidUrlScheme);
 }
Ejemplo n.º 4
0
 public IOSUriSchemeValidator(SDKConfiguration configuration)
 {
     _validator = new UriSchemeValidator(configuration.IOSUrlScheme);
 }