java如何从Unity Android插件调用非静态方法?
我想用这个java代码在unity中获取uri数据 我编写此脚本代码是为了调用此方法,但不起作用
*爪哇
public String GetUri(){
Intent intent = getIntent();
Uri intentData = intent.getData();
return intentData.getQueryParameter("token");
}
*c#
TextShow.text += ajc.Call<string>("GetUri");
经过多次测试,我发现只有静态方法可以调用unity
像这样
*爪哇
public static String DoSthInAndroid3()
{
return "33333";
}
*c#
TextShow.text += ajc.Call<string>("DoSthInAndroid3");
我尝试非静态的方法,但不工作
public String DoSthInAndroid3()
{
return "33333";
}
TextShow.text += ajc.Call<string>("DoSthInAndroid3");
如何使用安卓插件获取uri数据? getIntent()似乎无法在静态方法中调用,如何获取它
-----------更新-----------------
爪哇
package com.s.mylibrary;
import 安卓.net.Uri;
import com.unity3d.player.UnityPlayerActivity;
public class AndroidPlugin extends UnityPlayerActivity {
public static String GetString(){
return"TestThisPlugin";
}
public String GetUri(){
Uri intentData = getIntent().getData();
return intentData.getQueryParameter("token");
}
}
c#
void GetAndroidUri()
{
var ajc = new AndroidJavaClass("com.s.mylibrary.AndroidPlugin"); //(1)
TextShow.text += ajc.CallStatic<string>("GetString");
TextShow.text += ajc.CallStatic<string>("GetUri");
TextShow.text += ajc.Call<string>("GetUri");
}
雄激素单
<intent-filter>
<action 安卓:name="安卓.intent.action.VIEW"/>
<category 安卓:name="安卓.intent.category.DEFAULT" />
<category 安卓:name="安卓.intent.category.BROWSABLE" />
<data 安卓:scheme="justlovepaohuzi" 安卓:host="hmok" 安卓:pathPrefix="/UserToekn"/>
</intent-filter>
html
<a href="justlovepaohuzi://hmok/UserToekn/?token=123456999"> Open3 </a>
--------------更新-----------------
我修复了方法名并尝试了新的打印代码,我发现我仍然无法获得非静态方法,没有错误消息,但仍然与预期不同
爪哇
package com.s.mylibrary;
import 安卓.net.Uri;
import com.unity3d.player.UnityPlayerActivity;
public class AP extends UnityPlayerActivity{
public static String GetString(){
return "TestThisAP";
}
public String GetString2(){
return "AAAAAA";
}
public String GetUri(){
Uri uri = getIntent().getData();
return uri.getQueryParameter("token")+"XDDX";
}
}
c#
void GetAndroidUri()
{
var ajc = new AndroidJavaClass("com.s.mylibrary.AP");
TextShow.text += ajc.CallStatic<string>("GetString");
TextShow.text += ajc.Call<string>("GetString2");
TextShow.text += ajc.Call<string>("GetUri");
TextShow.text += "Last";
}
重列字符串
期望 “TestThisAPAAAAAA(令牌)XDDXLast”
重演 “TestThisAPLast”
# 1 楼答案
我终于在本文中找到了解决方案
enter link description here