используйте addjavascriptnterface для webview в ionic4, чтобы использовать нативный код - PullRequest
0 голосов
/ 03 января 2019

Я могу использовать addJavascriptInterface в простом Html и js для передачи нативного Java-кода на Android (скажем, для отображения Toast).Но я не могу использовать это в Ionic и машинописи.

вот моя основная деятельность:

package io.ionic.starter;

import android.content.Context;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.Toast;

import org.apache.cordova.*;

public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    // enable Cordova apps to be started in the background
    Bundle extras = getIntent().getExtras();
    if (extras != null && extras.getBoolean("cdvStartInBackground", 
false)) {
        moveTaskToBack(true);
    }

    // Set by <content src="index.html" /> in config.xml
    loadUrl(launchUrl);
    WebView webView = (WebView) appView.getEngine().getView();
    webView.getSettings().setJavaScriptEnabled(true);
    webView.addJavascriptInterface(new WebAppInterface(this), "Android");

 }
 public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }
     // Show Toast Message
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
 }
 }

это мой home.ts в Ionic4:

    import { Component } from '@angular/core';
declare var Android:any;
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
showToast(){
alert("show alert");
Android.showToast('Toast made by Javascript');
}
}

и HTML-часть:

<ion-button (click)="showToast()">show toast</ion-button>

и ошибка, когда я отлаживаю это:

ERROR CONTEXT DebugContext_ {view: {…}, nodeIndex: 13, nodeDef: {…}, elDef: {…}, elView: {…}}

кто-нибудь, помогите мне, пожалуйста.я потратил 2 дня на получение доступа из веб-просмотра к Java-коду без удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...