mirror of
https://github.com/servo/servo.git
synced 2025-06-04 07:35:36 +00:00
Add very simple Android browser page load support
This commit is contained in:
parent
3acb9540ff
commit
6beed30524
3 changed files with 80 additions and 1 deletions
|
@ -6,4 +6,5 @@
|
|||
# lines (the "-p" and "10" are separate even though they are related).
|
||||
|
||||
servo
|
||||
-w
|
||||
http://en.wikipedia.org/wiki/Rust
|
||||
|
|
|
@ -20,6 +20,28 @@
|
|||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
|
||||
<!-- Web browser intents -->
|
||||
<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="http" />
|
||||
<data android:scheme="https" />
|
||||
<data android:scheme="data" />
|
||||
<data android:scheme="javascript" />
|
||||
</intent-filter>
|
||||
<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="file" />
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
<data android:mimeType="text/html"/>
|
||||
<data android:mimeType="text/plain"/>
|
||||
<data android:mimeType="application/xhtml+xml"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
|
|
|
@ -1,8 +1,64 @@
|
|||
package com.mozilla.servo;
|
||||
import android.app.NativeActivity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.lang.System;
|
||||
|
||||
|
||||
public class MainActivity extends android.app.NativeActivity {
|
||||
private static final String LOGTAG="servo_wrapper";
|
||||
static {
|
||||
Log.i("servo_wrapper", "Loading the NativeActivity");
|
||||
Log.i(LOGTAG, "Loading the NativeActivity");
|
||||
}
|
||||
|
||||
private void set_url(String url) {
|
||||
try {
|
||||
PrintStream out = new PrintStream(new FileOutputStream("/sdcard/servo/android_params"));
|
||||
out.println("# The first line here should be the \"servo\" argument (without quotes) and the");
|
||||
out.println("# last should be the URL to load.");
|
||||
out.println("# Blank lines and those beginning with a '#' are ignored.");
|
||||
out.println("# Each line should be a separate parameter as would be parsed by the shell.");
|
||||
out.println("# For example, \"servo -p 10 http://en.wikipedia.org/wiki/Rust\" would take 4");
|
||||
out.println("# lines (the \"-p\" and \"10\" are separate even though they are related).");
|
||||
out.println("servo");
|
||||
out.println("-w");
|
||||
String absUrl = url.replace("file:///storage/emulated/0/", "/sdcard/");
|
||||
out.println(absUrl);
|
||||
out.flush();
|
||||
out.close();
|
||||
} catch (FileNotFoundException e) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
final Intent intent = getIntent();
|
||||
if (intent.getAction().equals(Intent.ACTION_VIEW)) {
|
||||
final String url = intent.getDataString();
|
||||
Log.d(LOGTAG, "Received url "+url);
|
||||
set_url(url);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop(); // Always call the superclass method first
|
||||
|
||||
Log.d(LOGTAG, "got onStop; finishing servo activity");
|
||||
finish();
|
||||
|
||||
// Glutin and the Java wrapper libraries that we use currently do not support restoring
|
||||
// Servo after Android has sent it to the background, as the resources were reclaimed.
|
||||
// Until we either address that in glutin or move to a library that supports recreating
|
||||
// the native resources after being restored, we just forcibly shut Servo down when it
|
||||
// is sent to the background.
|
||||
int pid = android.os.Process.myPid();
|
||||
android.os.Process.killProcess(pid);
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue