2016-08-01 3 views
0

Все работает отлично на Android, но я не знаю, как заставить его работать для iOS, пожалуйста, помогите.Unity Share Сценарий Android для iOS

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 
using System.IO; 
using System; 
using System.Collections.Generic; 

public class ShareMenu : MonoBehaviour 
{ 
    private bool isProcessing = false; 
    public string AppLinkURL { get; set; } 
    private string shareText = "Download This Game"; 
    private string gameLink = "Download the game on play store at " + "\nhttps://play.google.com/store/apps/details?id=com.CrazyDrivers"; 
    public void shareImage() 
    { 
     if (!isProcessing) 
      StartCoroutine(ShareScreenshot()); 
    } 

    private IEnumerator ShareScreenshot() 
    { 
     isProcessing = true; 
     yield return new WaitForEndOfFrame(); 

     string destination = Path.Combine(Application.persistentDataPath, System.DateTime.Now.ToString("yyyy-MM-dd-HHmmss") + ".png"); 
     Debug.Log(destination); 

     if (!Application.isEditor) 
     { 
      AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); 
      AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); 
      intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); 
      AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); 
      intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), shareText + gameLink); 
      intentObject.Call<AndroidJavaObject>("setType", "text/plain"); 
      AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
      AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); 
      currentActivity.Call("startActivity", intentObject); 

      isProcessing = false; 
     } 
    } 
} 

Можете ли вы как-то помочь мне изменить этот код для ИОС , чтобы позволить мне поделиться с Facebook, Twitter, WhatsApp. Потому что на android он работает очень хорошо. Я новичок в программировании.

+0

Что происходит при попытке развернуть на прошивке? –

+0

@SP. Он просто закрывает приложение, а иногда его замораживает. –

ответ

0

Я думаю, что приложение разбилось, потому что вы используете AndroidJavaClass на устройстве iOS. Вы можете попробовать это.

#if !UNITY_EDITOR && UNITY_ANDROID 
       AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); 
       AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); 
       intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); 
       AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); 
       intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), shareText + gameLink); 
       intentObject.Call<AndroidJavaObject>("setType", "text/plain"); 
       AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
       AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); 
       currentActivity.Call("startActivity", intentObject); 

       isProcessing = false; 
#elif UNITY_IOS 
       //put iOS share code here 
#endif 

, если ваше приложение остановить сбой (но это ничего не будет делать. Потому что мы только позволить ему работать на устройстве Android) .Затем, вы можете посмотреть на реализацию IOS. Для IOS коды вы можете посмотреть больше здесь http://forum.unity3d.com/threads/is-it-really-that-hard-to-share-a-simple-score-on-facebook-and-twitter-natively.231390/

для Facebook (только) вы должны использовать официальный Facebook Unity SDK https://developers.facebook.com/docs/unity/ https://developers.facebook.com/docs/unity/reference/current/FB.FeedShare

+0

Я использовал единство общего собрания, теперь я могу поделиться с ним в facebook, twitter и т. Д. На IO и Android, но не знаю, как что-то изменить там, я хочу поделиться ссылкой на игру и забивать. но не знаю, как –

Смежные вопросы