¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Solución para mostrar página de Google en la aplicación Agentry Android: Cómo implementar la clase ZDisplay con ExternalDataDisplayAdapter

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Hello Expert,

He creado una clase ZDisplay extend con la clase ExternalDataDisplayAdapter en el proyecto Agentry AgentryAndroidClientSolution dentro de "com.sap.mobile.platform.client.openui.extensions". También he creado el método getView y a través de este método estoy pasando la URL de Google. Aquí está el código

package com.sap.mobile.platform.client.openui.extensions;

import com.sap.mobile.platform.client.openui.adapters.ExternalDataDisplayAdapter;

import com.sap.mobile.platform.client.openui.models.ExternalDataDisplayModel;

import android.content.Context;

import android.view.View;

import android.view.View.OnClickListener;

import android.webkit.WebView;

import android.widget.Button;

import android.widget.LinearLayout;

import android.widget.TextView;

public class ZDisplay extends ExternalDataDisplayAdapter {

ExternalDataDisplayModel _model;

Context _context;

@Override

public void initialize(ExternalDataDisplayModel model, Context context) {

// TODO Auto-generated method stub

_model= model;

_context= context;

}

@Override

public View getView() {

WebView webview=null;

if(_context!=null)

{

LinearLayout ll = new LinearLayout(_context);

ll.setOrientation(LinearLayout.VERTICAL);

webview = new WebView(_context);

webview.loadUrl(" http://google.com/ ");

//browser.loadUrl("URL");

}

return webview;

// TODO Auto-generated method stub

//return null;

}

}

Luego exporto el proyecto AgentryAndroidClientSolution para crear el apk.

Después en Agentry, he creado un conjunto de pantallas y en eso un campo de tipo de edición - "Campo externo", luego en la selección de Campo externo pongo el adaptador ZDisplay como Nombre de clase.

Pero después de publicar la aplicación de agentry en el servidor de agentry y ejecutar el apk en el dispositivo Android, no puedo ver la página de Google ya que la paso como URL en el método getView de la clase ZDisplay en el proyecto AgentryAndroidClientSolution.

Aquí hay algunas capturas de pantalla.

getView.jpg
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Ashish,

También veo los mensajes filtrados de IntentReceiver y simplemente los ignoro.

Recuerda que la depuración de tu control de interfaz de usuario abierto se realizará a través del entorno de desarrollo y no del servidor Agentry. No es necesario configurar la depuración de Agentry, ya que solo afectará a tus pasos de Java en el lado del servidor.

Si deseas depurar, necesitas configurar tu entorno de desarrollo de Android para la depuración a través de USB. Dado que esto es específico de Android, no hay documentación de SAP al respecto. Puedes buscar ejemplos en Google de cómo configurar esto.

En mi inicialización, a veces uso un mensaje Toast para verlo aparecer en mi dispositivo cuando se carga la pantalla.

Toast.makeText(_context.getApplicationContext(), "Inicialización de Open UI", Toast.LENGTH_SHORT).show();

También agrego registros que luego se muestran en la ventana de logcat en Eclipse para monitorear la actividad.

Otra cosa, ¿marcaste tu carpeta src bajo AgentryAndroidClientSolution para que se use como carpeta fuente? Si lo hiciste, se mostrará así en Eclipse con el símbolo en el icono de la carpeta.

Para marcarlo, haz clic derecho en AgentryAndroidClientSolution > carpeta src y selecciona Build Path | Use as Source Folder.

--Bill

androidcompile.png
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hello Bill Froelich

I have not put popup message.

Here are the screen shots for Field Definition properties and External Field properties .

Defining Field Edit Type as "External Field"

Here calling ZDisplay class

And we are facing some errors .

06-23 13:07:04.179: E/ActivityThread(3444): Activity com.syclo.agentry.client.android.ui.builtin.ModuleMenuActivity has leaked IntentReceiver com.immersion.android.haptics.HapticFeedbackManager$HapticFeedbackBroadcastReceiver@41df5c48 that was originally registered here. Are you missing a call to unregisterReceiver()?

06-23 13:07:04.179: E/ActivityThread(3444): android.app.IntentReceiverLeaked: Activity com.syclo.agentry.client.android.ui.builtin.ModuleMenuActivity has leaked IntentReceiver com.immersion.android.haptics.HapticFeedbackManager$HapticFeedbackBroadcastReceiver@41df5c48 that was originally registered here. Are you missing a call to unregisterReceiver()?

06-23 13:07:04.179: E/ActivityThread(3444): at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:800)

06-23 13:07:04.179: E/ActivityThread(3444): at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:601)

06-23 13:07:04.179: E/ActivityThread(3444): at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1650)

06-23 13:07:04.179: E/ActivityThread(3444): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1630)

06-23 13:07:04.179: E/ActivityThread(3444): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1624)

06-23 13:07:04.179: E/ActivityThread(3444): at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:430)

06-23 13:07:04.179: E/ActivityThread(3444): at com.immersion.android.haptics.HapticFeedbackManager.setupPackageBroadcastReceiver(HapticFeedbackManager.java:564)

06-23 13:07:04.179: E/ActivityThread(3444): at com.immersion.android.haptics.HapticFeedbackManager.<init>(HapticFeedbackManager.java:108)

06-23 13:07:04.179: E/ActivityThread(3444): at com.immersion.android.HapticFeedbackManagerProxy.initialize(HapticFeedbackManagerProxy.java:90)

06-23 13:07:04.179: E/ActivityThread(3444): at com.immersion.android.HapticFeedbackManagerProxy.access$100(HapticFeedbackManagerProxy.java:30)

06-23 13:07:04.179: E/ActivityThread(3444): at com.immersion.android.HapticFeedbackManagerProxy$1$1.run(HapticFeedbackManagerProxy.java:71)

06-23 13:07:04.179: E/ActivityThread(3444): at java.lang.Thread.run(Thread.java:856)

Regards,

Ashish

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¿Puedes publicar una captura de pantalla de las propiedades de la definición de campo y las propiedades de campo externo desde el editor de Agentry?

¿Has considerado poner un mensaje emergente (toast) durante la inicialización para verificar que tu código está siendo llamado?

--Bill

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Ashish,

Tengo una solución para tu pregunta. Estoy enfrentando el mismo problema. Puse mis paquetes en el proyecto de Recursos, no en la solución. Hice esto y mi clase de adaptador se inicia.

Saludos

Prajakta

Clase Invoke in OpenUI.jpg
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?