【发布时间】:2018-09-17 11:47:30
【问题描述】:
我想使用这个 java 代码来统一获取 uri 数据 我写了这个脚本代码来调用这个方法,但不起作用
*java
public String GetUri(){
Intent intent = getIntent();
Uri intentData = intent.getData();
return intentData.getQueryParameter("token");
}
*c#
TextShow.text += ajc.Call<string>("GetUri");
经过多次测试,我发现只有静态方法可以统一调用
喜欢这个
*java
public static String DoSthInAndroid3()
{
return "33333";
}
*c#
TextShow.text += ajc.Call<string>("DoSthInAndroid3");
我尝试了非静态方法,但不起作用
public String DoSthInAndroid3()
{
return "33333";
}
TextShow.text += ajc.Call<string>("DoSthInAndroid3");
如何使用android Plugin 获取uri 数据? getIntent() 似乎无法调用静态方法,我该如何获取它?
------------更新-----
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#
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
<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
<a href="justlovepaohuzi://hmok/UserToekn/?token=123456999"> Open3 </a>
------更新---------------
我修正了方法名称并尝试新的打印代码,我发现我仍然无法获取非静态方法,没有错误消息,但仍然与预期不同
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#
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(token)XDDXLast"
下定决心 "TestThisAPlast"
【问题讨论】:
-
我正在添加更多细节。谢谢
-
编辑完成
-
得到
AndroidJavaObject而不是AndroidJavaClass会是答案吗? -
ok 我在底部更新
-
我发现我使用了错误的名称,我尝试修复
标签: java android unity3d plugins aar