Как изменить активность Android, нажав кнопку в (ионном) веб-представлении? - PullRequest
0 голосов
/ 02 января 2019

Я разрабатываю гибридное приложение с использованием Ionic 4. Ionic, как и другие приложения на основе html5, работает как webview в MainActivity.используя конденсатор, я импортировал свое приложение в Android Studio и создал SecondActivity.Как я могу перейти на SecondActivity, нажав кнопку внутри первого действия (MainActivity) (это страница Ioninc и, конечно, HTML-веб-просмотр).

До сих пор я пробовал другой метод для достиженияэто не удачаЯ создал плагин cordova, следуя этому руководству: Запустите активность Android из плагина cordova , он работает с префектом в приложении cordova, но мне не удалось импортировать его в Ionic.Я также попробовал Capacitor, и, очевидно, доступ к нативному коду с использованием конденсатора должен быть очень простым, но, к сожалению, мне пока не повезло.https://capacitor.ionicframework.com/docs/plugins/android

Ответы [ 2 ]

0 голосов
/ 04 января 2019

после много борьбы! вот ответ: плагин, который я упомянул, на самом деле работает здорово в cordova, и для его переноса в ionic4 (так как плагином является «PluginName», вы должны объявить и использовать его в своей машинописи), мой код выглядит следующим образом (home.page.ts) :

import { Component } from '@angular/core';
declare var PluginName: any;
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
goToCustomActivity(){
PluginName.new_activity();
}
}

и в вашем home.page.html:

<ion-content>
<ion-button (click)="goToCustomActivity()">go to custom activity</ion- 
button>
</ion-content>

Надеюсь, это поможет кому-нибудь. и особая благодарность оригинальному кодеру плагина "Ijas Ahamed N" Вы можете найти инструкции по написанию плагина здесь: https://www.ijasnahamed.in/2016/11/start-android-activity-from-cordova.html а вот и стекопотока Запуск андроид активности из плагина cordova

0 голосов
/ 03 января 2019

Вы можете сделать это, используя WebView.addJavaInterface . Просто напишите класс Android на Java (чтобы запустить желаемое действие) и вставьте объект в контекст WebView, вызвав WebView.addJavaInterface(). При нажатии кнопки HTML вызывается внедренный метод JS для запуска действия.

Панель запуска действий:

class MyJsInterface {
    @JavascriptInterface
    public String launchActivity() {
        // ...;
    }
 }

Введите его:

webview.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJsInterface(), "AndroidInterface");
webView.loadUrl(...);

На вашей веб-странице:

<button onclick="AndroidInterface.launchActivity()">Launche Activity</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...