unity跳转外部app固定页面
一、判断是否安装了app
之前写了判断是否安装app的文章,并且如果只是需要跳转app,并不需要跳转到某个页面,前面这篇文章就可以实现
https://www.cnblogs.com/qian-qiang/p/15696834.html
二、打开app某个页面
1、android
android是比较麻烦的,因为仅仅只是打开app的话,使用该app的包名就可以打开app了,但是如果要打开某个页面就需要该app的url schemes
看到这里是不是发现,那直接找app的url schemes就可以啦,反正ios打开也是需要url schemes的,那么问题来了
android打开使用的url schemes和ios使用的url schemes是不完全一样的,是的是不一样的,但是某些app确实也是一样的
例如:不同的
facebook,同样要跳转到facebook的公共主页的某个游戏的粉丝页
android url schemes:fb://page/{id}
ios url schemes:fb://profile/{id}
id为需要跳转页面的页面id,在网站上打开此页面,查看源码,搜索page_id就可以查到页面id
就是这样,如果用同一个url schemes总会有一个会跳到app首页
例如:相同的
相同的我用的是instagram这个app,它的android和ios的url schemes是一样的,都是instagram://user?username=页面名字
其他不多说了,上代码
using (AndroidJavaClass jcPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) using (AndroidJavaObject joActivity = jcPlayer.GetStatic<AndroidJavaObject>("currentActivity")) using (AndroidJavaObject joPackageManager = AndroidJavaObj.Call<AndroidJavaObject>("getPackageManager")) { using (AndroidJavaObject joIntent = joPackageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", androidPackageName)) { if (null != joIntent) { AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_VIEW")); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); // 对应的安卓调用函数是Uri.parse() AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", androidUrlScemes); // app特有的url scheme在网上都可以找到 intentObject.Call<AndroidJavaObject>("setData", uriObject); intentObject.Call<AndroidJavaObject>("setPackage", androidPackageName); // 记得要set package他才知道在哪里运行url sheme,否则url会从默认的浏览器里打开 AndroidJavaObj.Call("startActivity", intentObject); } } }
ios就不说啦,直接用unity的api就可以
一步一个脚印

浙公网安备 33010602011771号