首页 / C# / c# – 打开另一个应用程序并传入URL
c# – 打开另一个应用程序并传入URL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 打开另一个应用程序并传入URL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3026字,纯文字阅读大概需要5分钟。
内容图文
当我点击按钮时,我正在尝试统一打开Goog??le应用.
我在我的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所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。