как вызвать нестатический метод из плагина Unity Android? - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу использовать этот код Java, чтобы получить данные URI в единстве я пишу этот код сценария для вызова этого метода, но не работает

* Java

public String GetUri(){
    Intent intent = getIntent();
    Uri intentData = intent.getData();
    return intentData.getQueryParameter("token");
}

* с #

TextShow.text += ajc.Call<string>("GetUri");

После многих испытаний я обнаружил, что только статический метод может вызывать в единстве

как это

* ява

public static String DoSthInAndroid3()
{
    return "33333";
}

* с #

TextShow.text += ajc.Call<string>("DoSthInAndroid3");

я пробую нестатический метод, но не работаю

public String DoSthInAndroid3()
{
    return "33333";
}

TextShow.text += ajc.Call<string>("DoSthInAndroid3");

как использовать плагин Android для получения данных 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");
    }
}

с #

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";
    }
}

с #

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"

relult "TestThisAPLast"

1 Ответ

0 голосов
/ 18 сентября 2018

Я наконец нашел решение в этой статье

введите описание ссылки здесь

...