2016-11-22 5 views
0

У меня есть приложение, полностью разработанное с Android Studio. Мне нужно создать второе приложение, и я хотел бы сделать это с помощью phonegapp. Эти два приложения связаны друг с другом ... поэтому идеально я хотел бы объединить их обоих в одном приложении ... Объединив, я не хочу, чтобы они работали вместе. Я бы хотел, чтобы они были загружены вместе (как одно приложение) и были в состоянии перейти от одного к другому внутри приложения ... так что они могут быть полностью двумя отдельными приложениями, но если пользователь будет думать, что это только одно приложение , Надеюсь, я хорошо понимаю, гибридное приложение использует микрофон с плагином Cordova. Когда-то я размышлял о том, чтобы разместить его с iframe, но мы потеряем микрофон, который вызывает распознавание речи Google, основанный на Android, для преобразования его в текст и передачи его для редактирования текста.Могу ли я объединить эти два приложения (родные и гибридные) в одно приложение?

Так мои вопросы это:

  1. Могу ли я объединить эти два приложения (родной и гибрид) в одно приложение?
  2. Будет ли микрофон с распознаванием речи для преобразования в текст хорошо работать в обоих случаях?
+1

Сомневаюсь, что вы можете это сделать. Его песочница для каждого приложения, но в вашем случае вы не просто хотите общаться между двумя приложениями, но работать под одной и той же песочницей с использованием разных технологий. Если вы не хотите, выполните следующие действия: Genereate aar file в Phonegap и используйте это как библиотеку в вашем приложении для Android - здесь http://imcodebased.com/android-share-code-multiple-applications/ – codebased

ответ

0

1) Ничто не мешает вам иметь два приложения, которые действуют как один (кроме загружаемой части). Они могут «говорить» друг с другом, используя выделенные Intent s и обмениваться данными, используя ContentProvider s. Вам нужно будет позаботиться о том, где установлено одно приложение, а другое - нет.

2) В этом случае я не вижу какой-либо конкретной проблемы с микрофоном.

Однако, если бы я был вами, я бы выбрал одно приложение, если это возможно. Однако я не уверен, каковы ограничения на использование телефона для такого рода реализации.

1

Да, это было немного больно, но у меня есть работа. Я не использую PhoneGap, но я использую Construct вместе с плагином Cordova, поэтому он должен быть похожей.

Сначала я взял все веб-файлы, созданные Кордовой, и поместил их в каталог assets (если у вас нет каталога ресурсов, вы можете просто создать его в каталоге main). Тогда я использовал WebView для отображения содержимого:

public class CordovaActivity extends AppCompatActivity { 

    private WebView mWebView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_cordova); 

     mWebView = (WebView) findViewById(R.id.content); 

     WebSettings settings = mWebView.getSettings(); 
     settings.setJavaScriptEnabled(true); 
     settings.setDomStorageEnabled(true); 

     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
      settings.setAllowUniversalAccessFromFileURLs(true); 
     } 

     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { 
      settings.setMediaPlaybackRequiresUserGesture(false); 
     } 

     mWebView.loadUrl("file:///android_asset/www/index.html"); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     if(mWebView != null) { 
      mWebView.resumeTimers(); 
      mWebView.onResume(); 
     } 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     if(mWebView != null) { 
      mWebView.pauseTimers(); 
      mWebView.onPause(); 
     } 
    } 

} 

В setJavaScriptEnabled(), setDomStorageEnabled() и setAllowUniversalAccessFromFileURLs() настройки все должны были быть установлены на true или содержание не будет загружаться. Последняя настройка, setMediaPlaybackRequiresUserGesture(), требовалась для воспроизведения звука.

Будет немного больше работы, чтобы контент Кордовы мог взаимодействовать с остальной частью приложения; для этого вам нужно будет использовать JavaScriptInterface.

 Смежные вопросы

  • Нет связанных вопросов^_^