[英]how to call Non-static method from Unity Android Plugin?
i want use this java code to get uri data in unity i write this script code to call this method , but not work 我想使用此java代码统一获取uri数据,我编写此脚本代码来调用此方法,但不起作用
*java * java的
public String GetUri(){
Intent intent = getIntent();
Uri intentData = intent.getData();
return intentData.getQueryParameter("token");
}
*c# *C#
TextShow.text += ajc.Call<string>("GetUri");
After many tests , i find only static method can call in unity 经过多次测试,我发现只有静态方法可以统一调用
like this 像这样
*java * java的
public static String DoSthInAndroid3()
{
return "33333";
}
*c# *C#
TextShow.text += ajc.Call<string>("DoSthInAndroid3");
i try Non-static method , but not work 我尝试使用非静态方法,但不起作用
public String DoSthInAndroid3()
{
return "33333";
}
TextShow.text += ajc.Call<string>("DoSthInAndroid3");
how to use android Plugin to get the uri data? 如何使用android插件获取uri数据? the getIntent() seem cant call in static method , how do i get it ? getIntent()似乎无法在静态方法中调用,我该如何获取?
------------update----------------- ------------更新-----------------
java java的
package com.s.mylibrary;
import android.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# 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");
}
AndroidManifest AndroidManifest
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="justlovepaohuzi" android:host="hmok" android:pathPrefix="/UserToekn"/>
</intent-filter>
html HTML
<a href="justlovepaohuzi://hmok/UserToekn/?token=123456999"> Open3 </a>
-----------------update--------------- -----------------更新---------------
i fix method name and try new Print code, i find i still can't get non-static method , not have error message , but still different from expectation 我修复了方法名称并尝试了新的打印代码,我发现我仍然无法获得非静态方法,没有错误消息,但仍然与预期有所不同
java java的
package com.s.mylibrary;
import android.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# 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";
}
relult string 随机字符串
expected "TestThisAPAAAAAA(token)XDDXLast" 预期的“ TestThisAPAAAAAA(令牌)XDDXLast”
relult "TestThisAPLast" 依赖“ TestThisAPLast”
I finally found a solution in this article 我终于在本文中找到了解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.