на основе моего заголовка, вот более подробная информация (я не могу поделиться информацией о платформе, которую я использую из-за NDA ...)
Я создал плагин Cordova и через JS in вызывал "initialize""метод, подобный следующему:
FRAMEWORK.initialize(ID, SECRET, SCOPE, URI, SANDBOX, context);
Данные, написанные заглавными буквами, безусловно верны, но для версии Android, в отличие от версии ios, которая работает нормально, требуется /" context "для правильной работы.
Я пытался передать контекст как «всегда» для Android / Cordova, но он всегда выдает исключение «свойство lateinit не было инициализировано».
Пробовал те, но ни одна не работала, всегда та же ошибка.
Context context = this.cordova.getContext();
Context context = this.cordova.getActivity();
Context context = cordova.getActivity();
Context context = cordova.getContext();
Context context = cordova.getContext().getApplicationContext();
Context context = webView.getContext().getApplicationContext();
Context context = webView.getContext();
Проблема: производитель официально не поддерживает приложения Cordova, поэтому они не могут мне помочь (правила компании, отлично .: /
Я дажеизменил файл «MainActivity» на
package com.xxx.bbb.development;
import android.os.Bundle;
import org.apache.cordova.*;
import android.content.Context;
public class MainActivity extends CordovaActivity
{
private static Context context;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
moveTaskToBack(true);
}
loadUrl(launchUrl);
MainActivity.context = this.getApplicationContext();
}
public static Context getAppContext() {
return MainActivity.context;
}
}
, чтобы это соответствовало контексту.
У меня так далеко от идей, пожалуйста, есть ли у кого-нибудь подсказка / подсказка / что угодно для меня?
#
Aditionally, плагин .java код:
package com.xxx.bbb;
import android.util.Log;
import com.xxx.bbb.development.MainActivity;
import fw.de.framework.BuildConfig;
import fw.de.framework.FRAMEWORKapi;
import fw.de.framework.FRAMEWORKState;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.apache.cordova.*;
import android.content.Context;
public class FrameworkBridge extends CordovaPlugin {
public FRAMEWORKapi FRAMEWORK;
public Context context;
// Initialisation
@Override
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
super.initialize(cordova, webView);
FRAMEWORK = new FRAMEWORKapi();
}
@Override
public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
// version
if(action.equals("initialize")) {
Log.e("++++ initialize", "execute");
String client_id = args.getString(0);
String client_secret = args.getString(1);
String scope = args.getString(2);
String redirect_URI = args.getString(3);
Boolean use_Sandbox = args.getBoolean(4);
Log.e("++++ getState", client_id);
Log.e("++++ client_secret",client_secret);
Log.e("++++ scope",scope);
Log.e("++++ redirect_URI",redirect_URI);
Log.e("++++ use_Sandbox", use_Sandbox.toString());
context = MainActivity.getAppContext();
try {
FRAMEWORK.initialize(client_id, client_secret, scope, redirect_URI, use_Sandbox, context);
Log.e("++++ cState", cState.toString());
final PluginResult result = new PluginResult(PluginResult.Status.OK, "xxx" + cState.toString());
result.setKeepCallback(true);
callbackContext.sendPluginResult(result);
Log.e("++++ initialize", "success");
return true;
} catch (Exception e) { // DAS HIER WIRD ZURÜCKGEGEBEN WENN ICH DIE FUNKTION AUFRUFE
final PluginResult result = new PluginResult(PluginResult.Status.ERROR, e.getMessage());
result.setKeepCallback(true);
callbackContext.sendPluginResult(result);
Log.e("++++ initialize", "errrrrrr");
return false;
}
} else {
final PluginResult result = new PluginResult(PluginResult.Status.ERROR);
result.setKeepCallback(true);
callbackContext.sendPluginResult(result);
Log.e("++++ no action found", action);
return false;
}
}
}