Unity共享脚本Android到iOS
本文关键字:iOS Android 脚本 共享 Unity | 更新日期: 2023-09-27 17:59:50
在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的代码吗让我分享到脸书,推特,whatsapp。因为在android上它运行得很好。我是编程新手。
我认为应用程序崩溃是因为您在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(仅限),您应该使用官方的facebook Unity SDKhttps://developers.facebook.com/docs/unity/https://developers.facebook.com/docs/unity/reference/current/FB.FeedShare