2016-08-01 61 views
0

一切工作正常在Android上,但我不知道如何使它適用於iOS,請幫助。統一共享腳本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; 
     } 
    } 
} 

你能以某種方式幫助我改變了IOS 此代碼讓我分享到Facebook,Twitter,WhatsApp的。因爲在Android上它工作得很好。我是編程的新手。

+0

會發生什麼? –

+0

@SP。它只是關閉的應用程序,有時它凍結 –

回答

0

我認爲應用程序崩潰是因爲您在iOS設備上使用AndroidJavaClass。 你可以試試這個。

#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(只)當您嘗試在iOS上部署你應該使用Facebook官方統一SDK https://developers.facebook.com/docs/unity/ https://developers.facebook.com/docs/unity/reference/current/FB.FeedShare

+0

我使用共享束團結,我現在可以分享到Facebook和Twitter等在IO和Android上,但不知道如何改變那裏的東西,我想分享遊戲鏈接和得分。但不知道如何 –