Кордова - android аар интегратон - PullRequest
1 голос
/ 06 августа 2020

Я интегрировал android файл aar в проект cordova и создал плагин cordova для вызова активности arr. Внутри этого действия есть веб-представление для загрузки URL-адреса, для sampe я использовал "http://apache.org". Действие вызывается из pugn, но загруженный веб-просмотр в эмуляторе / устройстве пуст. Не могли бы вы сказать мне, можно ли загружать веб-представление действий из кордовы, поскольку кордова - это одностраничное веб-приложение. Я застрял и не могу продолжить. Я добавил фрагменты кода ниже.

//this method calls the activity nside the aar whch has the web view.

    public class MyPlugin extends CordovaPlugin {

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if (action.equals("coolMethod")) {
            String message = args.getString(0);
            this.coolMethod(message, callbackContext);
            return true;
        }
        return false;
    }

    private void coolMethod(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            callbackContext.success(message);
            Intent intent = new Intent(cordova.getActivity(), MainActivityWV.class);
            cordova.getActivity().startActivity(intent);
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }
    
}

//index.js implementation



cordova.plugins.MyPlugin.coolMethod("coolMethod", function(response){
        console.log(response);
    }, function(error){
        console.log(error);
    });

//config.xml cordova


<access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
        <allow-navigation href="http://app/*" />
        
        <preference name="Scheme" value="https" />
        <preference name="MixedContentMode" value="2" />
        <framework custom="true" src="libs/myapplication-debug.aar" type="gradleReference" />
    

//aar's activity with web view:



@SuppressLint("SetJavaScriptEnabled")
    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_test);

        myWebView = (WebView)findViewById(R.id.webview);

        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.getSettings().setAppCacheEnabled(true);
        myWebView.getSettings().setDatabaseEnabled(true);
        myWebView.getSettings().setDomStorageEnabled(true);
        myWebView.getSettings().setSupportZoom(true);
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        myWebView.getSettings().setPluginState(android.webkit.WebSettings.PluginState.ON);
        myWebView.getSettings().setBuiltInZoomControls(true);
        myWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
        myWebView.getSettings().setUseWideViewPort(true);
        myWebView.getSettings().setLoadWithOverviewMode(true);

        myWebView.getSettings().setGeolocationEnabled(true);

        myWebView.setWebViewClient(new WebViewClient()
        {
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler
                    handler, SslError error)
            {
                handler.proceed();
                Log.d(TAG, "onReceivedSslError: "+error.toString());
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                Log.d(TAG, "onPageStarted: ");
            }
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                Log.d(TAG, "onPageFinished: ");
                view.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorAccent));
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                    view.setLayerType(View.LAYER_TYPE_HARDWARE, null);
                } else {
                    view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
                }
            }
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {

                Log.d(TAG, "shouldOverrideUrlLoading: ");
                return super.shouldOverrideUrlLoading(view, request);
            }
        });
        myWebView.setBackgroundResource(android.R.color.transparent);
        myWebView.loadUrl("http://apache.org");

}

это действие загружено из кордовы, но веб-представление пустое

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