Я пытаюсь встроить приложение ioni c в собственное приложение android с фрагментами, я уже создал cordovaweview и добавил библиотеку cordov в свой проект.
Из ioini c Я скопировал следующие файлы
ionicapp / platform / android / platform_ www*1006*
и
ionicapp / platform / android / app / src /main/res/config.xml
Затем, если я пытаюсь открыть приложение и нажать на фрагмент, который имеет веб-просмотр, я получаю индекс ошибки. html не найден
Затем я скопировал файлы из sr c
ionicapp / src /
, и это не дало никакой ошибки, но страница пуста, и если Я добавляю
Я могу видеть содержимое внутри
, но не приложение ioni c.
Приложение ioni является базовым c приложением
ioni c start ioni c приложение пустое
Любые идеи, какие файлы мне нужно перенести из приложения ioni c в собственное приложение
Это со де для фрагмента с кодом cordovawebview
package com.k.ionicapp;
import android.app.Activity;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import org.apache.cordova.Config;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.api.CordovaInterface;
import org.apache.cordova.api.CordovaPlugin;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class AppFragment extends Fragment implements CordovaInterface {
CordovaWebView myWebView;
public static AppFragment newInstance() {
AppFragment fragment = new AppFragment();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LayoutInflater localInflater = inflater.cloneInContext(new CordovaContext(getActivity(), this));
View rootView = localInflater.inflate(R.layout.fragment_app, container, false);
myWebView = (CordovaWebView) rootView.findViewById(R.id.cordovaWebView);
Config.init(getActivity());
myWebView.loadUrl(Config.getStartUrl());
return rootView;
}
private class CordovaContext extends ContextWrapper implements CordovaInterface
{
CordovaInterface cordova;
public CordovaContext(Context base, CordovaInterface cordova) {
super(base);
this.cordova = cordova;
}
public void startActivityForResult(CordovaPlugin command,
Intent intent, int requestCode) {
cordova.startActivityForResult(command, intent, requestCode);
}
public void setActivityResultCallback(CordovaPlugin plugin) {
cordova.setActivityResultCallback(plugin);
}
public Activity getActivity() {
return cordova.getActivity();
}
public Object onMessage(String id, Object data) {
return cordova.onMessage(id, data);
}
public ExecutorService getThreadPool() {
return cordova.getThreadPool();
}
}
// Plugin to call when activity result is received
protected CordovaPlugin activityResultCallback = null;
protected boolean activityResultKeepRunning;
// Keep app running when pause is received. (default = true)
// If true, then the JavaScript and native code continue to run in the background
// when another application (activity) is started.
protected boolean keepRunning = true;
private final ExecutorService threadPool = Executors.newCachedThreadPool();
public Object onMessage(String id, Object data) {
return null;
}
public void onDestroy() {
super.onDestroy();
if (myWebView.pluginManager != null) {
myWebView.pluginManager.onDestroy();
}
}
@Override
public ExecutorService getThreadPool() {
return threadPool;
}
@Override
public void setActivityResultCallback(CordovaPlugin plugin) {
this.activityResultCallback = plugin;
}
public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
this.activityResultCallback = command;
this.activityResultKeepRunning = this.keepRunning;
// If multitasking turned on, then disable it for activities that return results
if (command != null) {
this.keepRunning = false;
}
// Start activity
super.startActivityForResult(intent, requestCode);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
CordovaPlugin callback = this.activityResultCallback;
if (callback != null) {
callback.onActivityResult(requestCode, resultCode, intent);
}
}
}
и это индекс html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Ionic App</title>
<base href="/" />
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<link rel="icon" type="image/png" href="assets/icon/favicon.png" />
<!-- add to homescreen for ios -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
</head>
<body>
<app-root></app-root>
<p>Test</p>
</body>
</html>