当前位置:   article > 正文

通过H5唤醒Unity3D APP_unity3d 深链接

unity3d 深链接

  原本查了很多资料,准备再AndroidStudio中去处理的,结果发现Unity3D2020以后支持启用深层链接

  这样我们要做的工作就少很多了,只需要用好函数即可。

  这是官网提供的例子:

U3D端:

  1. using UnityEngine;
  2. using UnityEngine.SceneManagement;
  3. public class ProcessDeepLinkMngr : MonoBehaviour
  4. {
  5. public static ProcessDeepLinkMngr Instance { get; private set; }
  6. public string deeplinkURL;
  7. private void Awake()
  8. {
  9. if (Instance == null)
  10. {
  11. Instance = this;
  12. Application.deepLinkActivated += onDeepLinkActivated;
  13. if (!string.IsNullOrEmpty(Application.absoluteURL))
  14. {
  15. // Cold start and Application.absoluteURL not null so process Deep Link.
  16. onDeepLinkActivated(Application.absoluteURL);
  17. }
  18. // Initialize DeepLink Manager global variable.
  19. else deeplinkURL = "[none]";
  20. DontDestroyOnLoad(gameObject);
  21. }
  22. else
  23. {
  24. Destroy(gameObject);
  25. }
  26. }
  27. private void onDeepLinkActivated(string url)
  28. {
  29. // Update DeepLink Manager global variable, so URL can be accessed from anywhere.
  30. deeplinkURL = url;
  31. // Decode the URL to determine action.
  32. // In this example, the app expects a link formatted like this:
  33. // unitydl://mylink?scene1
  34. string sceneName = url.Split("?"[0])[1];
  35. bool validScene;
  36. switch (sceneName)
  37. {
  38. case "scene1":
  39. validScene = true;
  40. break;
  41. case "scene2":
  42. validScene = true;
  43. break;
  44. default:
  45. validScene = false;
  46. break;
  47. }
  48. if (validScene) SceneManager.LoadScene(sceneName);
  49. }
  50. }

Android XML配置:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
  3. <application>
  4. <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" >
  5. <intent-filter>
  6. <action android:name="android.intent.action.MAIN" />
  7. <category android:name="android.intent.category.LAUNCHER" />
  8. </intent-filter>
  9. <intent-filter>
  10. <action android:name="android.intent.action.VIEW" />
  11. <category android:name="android.intent.category.DEFAULT" />
  12. <category android:name="android.intent.category.BROWSABLE" />
  13. <data android:scheme="unitydl" android:host="mylink" />
  14. </intent-filter>
  15. </activity>
  16. </application>
  17. </manifest>

这里unitydl可以换成项目名,mylink可以换成包名(参考淘宝之类的第三方跳转)。

  1. <html>
  2. <head>
  3. <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  4. </head>
  5. <body >
  6. <h1>My Deep Link Test page</h1>
  7. <p><a href="unitydl://mylink">Launch</a></p>
  8. <p><a href="unitydl://mylink?parameter">Launch with Parameter</a></p>
  9. </body>
  10. </html>

 问号是拉起app时候传的信息。html可以用txt文本编辑测试~IOS还没测试,不过基本一样。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/112638
推荐阅读
相关标签
  

闽ICP备14008679号