Ich versuche, die Kontrolle über die Play/Pause HTML-DOM-Elemente (in einem Browser in einem PC geöffnet) von einem Android-Gerät zu übernehmen.DOM-Elemente von Android-App steuern
In der HTML-Seite (in Google Chrome-Browser) gibt es einen <video>
Tag, damit ich es so steuern kann:
//js code
document.querySelector("video").play();
document.querySelector("video").pause();
Aber ich mag, dass von einem Android-Gerät laufen, so dass ich GCM bin mit.
Ich lese here und bekam ein wenig Einblick, aber ich habe noch einige Fragen.
Erstens, weil ich in Eclipse ich schreibe, und es sieht keine
document
Variable, wird ein Fehler ausgegeben. Also, wie kann Eclipse erkennen, dasselement
in der HTML-Seite, so kann ich die apk auf dem Gerät kompilieren und installieren?Wo gebe ich die Seiten-URL an, mit der ich kommunizieren möchte? (Senden Wiedergabe/Pause-Befehle)
auszuführen js innerhalb java Ich Rhino verwenden. Ich schaute durch die Beispiele in der documentation, aber ich bin immer noch nicht sicher, ob eine
@JSFunction
Annotation genug ist, um eine js Funktion zu erklären.
Hier ist mein Code:
import com.alaa.chromote.util.SystemUiHider;
import com.google.android.gcm.GCMRegistrar;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;
import android.view.View.OnClickListener;
import org.mozilla.javascript.*;
import org.mozilla.javascript.annotations.*;
public class MainApplication extends Activity {
private final static String GCM_SENDER_ID = "484514826047";
private static final String LOG_TAG = "GetAClue::GCMIntentService";
private Button playButton;
private Button pauseButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_application);
playButton = (Button) findViewById(R.id.PlayButton);
pauseButton = (Button) findViewById(R.id.PauseButton);
playButton.setVisibility(View.INVISIBLE);
pauseButton.setVisibility(View.VISIBLE);
//connect to gcm
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if(regId.equals("")) {
GCMRegistrar.register(this, GCM_SENDER_ID);
}
else {
Log.v(LOG_TAG, "Already registered");
}
Context.enter(); //start Rhino
setupListeners();
}
@JSFunction
public void play() { document.querySelector("video").play(); }
@JSFunction
public void pause() { document.querySelector("video").pause(); }
private void setupListeners()
{
playButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
play();
}
});
pauseButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
pause();
}
});
}
@Override
protected void onStop() {
Context.exit(); //stop Rhino
super.onStop();
}
}
Wie fahre ich fort von hier?