На Android Ionic / Cordova, как я могу запустить CordovaActivity из службы плагина и загрузить ли Deeplink? - PullRequest
0 голосов
/ 06 февраля 2019

Из плагина Cordova я запускаю сервис, который в какой-то момент должен запустить CordovaActivity с WebView:

public class MyServiceForSettingDocument extends Service {



    public IBinder onBind(Intent intent){
        return null;
    }

    public int onStartCommand(Intent intent, int flags, int startId){

        startActivity(new Intent(this, MyWebActivity.class));

        return START_STICKY;
    }
}

и MyWebActivity равно

public class MyWebActivity 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);
        }

        loadUrl("file:///android_asset/www/index.html/#/q/6");        

    }
}

где я пытаюсь воссоздать загрузку глубокой ссылки, например, как было определено в app.module.ts, например:

IonicModule.forRoot(MyApp, {}, {
      links:[{component:DocPage, name:"q", segment:"q/:id"}]
    }),

и которая в веб-приложении через ionic serve будет загружаться, хотя http://localhost:8100/#/q/6

Я получаю сообщение об ошибке:

E/AndroidProtocolHandler: Unable to open asset URL: file:///android_asset/www/index.html/#/q/6

Как правильно запустить CordovaActivity из службы Android в приложении Ionic и заставить его WebView перемещаться по внутренней ссылке?

Большое спасибо за внимание!

1 Ответ

0 голосов
/ 12 февраля 2019

Я был не прав, когда писал глубокую ссылку в loadUrl.Правильная строка будет loadUrl("file:///android_asset/www/index.html#/q/6");

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