Рубрики
Unity Разработка

We noticed that the user is taken to Safari when tapping on listings, which provides a poor user experience. При публикации приложения в App Store unity.

Если Вы никогда не сталкивались с проблемами с публикацией в apple store и не слышали что такое reject, то можно смело идти и покупать лотерейный билет.

Проблема следующая если в Вашем приложение используются внешние ссылки на сторонние сайты и вы открываете через

        Application.OpenURL(url);

Благодаря этому коду apple, сможет выдать вам reject но не всегда! Зависит от приложения если приложение большое то это могут проигнорировать. Текст на который они ссылаются выглядит примерно так.

Guideline 4.0 — Design

We noticed that the user is taken to Safari when tapping on listings, which provides a poor user experience.

Next Steps

To resolve this issue, please revise your app to enable users to browse listing in the app.

We recommend implementing the Safari View Controller API to display web content within your app. The Safari View Controller allows the display of a URL and inspection of the certificate from an embedded browser in an app so that customers can verify the webpage URL and SSL certificate to confirm they are entering their sign in credentials into a legitimate page.

Resources

For additional information on the Safari View Controller API, please review the What’s New in Safari webpage.

Будем использовать WebView в unityдля iOS и будем открывать его внутри приложения что бы наш драгоценный пользователь не покинул его!

(чтобы строка состояния не отображалась в приложение, добавьте строку состояния в info.plist и установите для нее значение false)

Загрузите ниже 2 файла из архива в Ваш проект по этому пути:

Assets\Plugins\iOS

У туда помещаем эти 2 файла:

Ниже пример как обработать открытие через WebView на iOS все просто и лаконично:

using System.Runtime.InteropServices;
using UnityEngine;

public class OpenURLUI : MonoBehaviour
{

#if UNITY_IPHONE
	[DllImport ("__Internal")] private static extern void _OpenURL(string url);
#endif

    public string url = string.Empty;
    public void OpenURL()
    {
        if (!Application.isEditor)
        {
#if UNITY_IPHONE
			_OpenURL(url);
#endif
        }
        else
        {
            Application.OpenURL(url);
        }
    }
}

Наедимся что Вам это поможет в Ваших проектах, успехов !