2016-08-01 14 views
0

Alles funktioniert auf Android in Ordnung, aber ich weiß nicht, wie es für iOS arbeiten zu lassen, bitte helfen Sie.Unity Teilen Script Android auf 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; 
     } 
    } 
} 

Können Sie mir irgendwie helfen für ios diesen Code zu ändern mich whatsapp auf facebook, twitter, haben zu lassen. Denn auf Android funktioniert es sehr gut. Ich bin Anfänger im Programmieren.

+0

Was passiert, wenn Sie versuchen, auf iOS zu implementieren? –

+0

@ SP. Es schließt nur app, und manchmal friert es –

Antwort

0

ich glaube, die App abgestürzt, weil Sie AndroidJavaClass auf dem iOS-Gerät verwenden. Sie können dies versuchen.

#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 

wenn Ihre Anwendung abstürzt stoppen (aber es wird nichts tun. Weil wir es nur erlauben, auf Android-Gerät laufen zu lassen) .Dann können Sie für iOS Implementierung aussehen. Für iOS-Code kann man mehr sehen hier http://forum.unity3d.com/threads/is-it-really-that-hard-to-share-a-simple-score-on-facebook-and-twitter-natively.231390/

für Facebook (nur) Sie sollten offiziellen Facebook-Unity SDK verwenden https://developers.facebook.com/docs/unity/ https://developers.facebook.com/docs/unity/reference/current/FB.FeedShare

+0

ich Anteil Haufen Einheit verwendet wird, kann ich jetzt auf Facebook teilen, Twitter, etc. auf iOS- und Android, aber nicht wissen, wie es etwas zu ändern, ich will Spiel Link teilen, und Partitur. aber weiß nicht wie –