Ausgabe
Ist es möglich, die native Freigabefunktion (Datei) von Android in Chrome WebView aufzurufen? Ich erstelle eine hybride Ionic AngularJS-App und möchte die native Freigabefunktion von Android für Dateien verwenden. Ich habe verschiedene Plugins ausprobiert, aber alle verwenden eine benutzerdefinierte Freigabeimplementierung für jede der auf dem Gerät vorhandenen Apps, was nicht ausreicht.
Lösung
Hast du es versucht, eine zu machenJavascriptInterface
Fügen Sie dies in Ihrer hinzuMainActivity.java
public class WebViewJavaScriptInterface {
private Context context;
@JavascriptInterface
public void sharingIsCaring(String code) {
openSharing(code);
}
}
Dies ist die Aktion, die das Teilen startet:
public void openSharing(String code) {
String message = "Your share message: " + code;
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, message);
startActivity(Intent.createChooser(share, "Share your code"));
}
Also, wie löst man das aus@JavascriptInterface
Sie müssen dies in Ihrer OnCreate()
Methode hinzufügen:
view.addJavascriptInterface(new WebViewJavaScriptInterface(this), "SmashIt");
Um es also vom JS auszulösen, müssen Sie nur die Funktion aufrufensharingIsCaring()
Sie müssen dies tun, indem SmashIt
Sie für die Funktion, die Sie anrufen, platzieren, damit Android weiß, dass Sie ihn anrufen. Es wird also so aussehen:
SmashIt.sharingIsCaring(code)
Beantwortet von – Steven
Antwort geprüft von – Jay B. (FixError Admin)