
当我点击按钮时,我正在尝试统一打开Google应用.
我在我的Android设备上运行应用程序,但它无法正常工作
这是我使用的代码
Application.OpenURL ("gplus://plus.Google.com/+JewelMash");此代码有效但它会提示您选择使用浏览器或谷歌应用程序打开它
Application.OpenURL ("https://plus.Google.com/+JewelMash");解决方法:
Application.OpenURL函数无法执行此 *** 作.我以前做过这个并且愿意分享.您可以创建一个Java插件来执行此 *** 作,也可以使用AndroidJavaClass和C#来执行此 *** 作.我在C#中做了我的,因为这是一个简单的插件.
要打开任何应用程序:
public bool openUrl(string packagename){ #if UNITY_ANDROID AndroIDJavaClass unityPlayer = new AndroIDJavaClass("com.unity3d.player.UnityPlayer"); AndroIDJavaObject unityActivity = unityPlayer.GetStatic<AndroIDJavaObject>("currentActivity"); AndroIDJavaObject pManager = unityActivity.Call<AndroIDJavaObject>("getPackageManager"); AndroIDJavaObject intent = null; try { intent = pManager.Call<AndroIDJavaObject>("getLaunchIntentForPackage", packagename); unityActivity.Call("startActivity", intent); return true; } catch (Exception e) { DeBUG.LogWarning("Failed to Opeen App: " + e.Message); //Open with browser string link = "https://play.Google.com/store/apps/details?ID=" + packagename + "&hl=en"; Application.OpenURL(link); return false; } #endif return false;}用法:
bool success = openUrl("com.Google.androID.apps.plus");要打开另一个应用程序,然后传入Url:
public bool openUrl(string packagename, string url){ #if UNITY_ANDROID AndroIDJavaClass unityPlayer = new AndroIDJavaClass("com.unity3d.player.UnityPlayer"); AndroIDJavaObject unityActivity = unityPlayer.GetStatic<AndroIDJavaObject>("currentActivity"); AndroIDJavaObject pManager = unityActivity.Call<AndroIDJavaObject>("getPackageManager"); //For accessing static strings(ACTION_VIEW) from androID.content.Intent AndroIDJavaClass intentStaticclass = new AndroIDJavaClass("androID.content.Intent"); string actionVIEw = intentStaticclass.GetStatic<string>("ACTION_VIEW"); //Create Uri AndroIDJavaClass uriClass = new AndroIDJavaClass("androID.net.Uri"); AndroIDJavaObject uriObject = uriClass.CallStatic<AndroIDJavaObject>("parse", url); //Psss ACTION_VIEW and Uri.parse to the intent AndroIDJavaObject intent = new AndroIDJavaObject("androID.content.Intent", actionVIEw, uriObject); try { if (pManager.Call<AndroIDJavaObject>("getPackageInfo", packagename, 0) != null) { intent.Call<AndroIDJavaObject>("setPackage", packagename); } } catch (Exception e) { DeBUG.LogWarning("Failed to Open App 1: " + e.Message); return false; } try { unityActivity.Call("startActivity", intent); return true; } catch (Exception e) { DeBUG.LogWarning("Failed to Open App 2: " + e.Message); //Open with browser string link = "https://play.Google.com/store/apps/details?ID=" + packagename + "&hl=en"; Application.OpenURL(link); return false; } #endif return false;}用法:
bool success = openUrl("com.Google.androID.apps.plus", "https://plus.Google.com/+JewelMash");您正在寻找第二个代码.如果要查找其他应用程序的包名称,请使用下图:
此解决方案适用于AndroID.您将需要Object-C插件才能在iOS中执行此 *** 作.我建议你在iOS上提出一个关于如何做到这一点的新问题.
总结以上是内存溢出为你收集整理的c# – 打开另一个应用程序并传入URL全部内容,希望文章能够帮你解决c# – 打开另一个应用程序并传入URL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)