Android 我可以将这两个应用程序(本地和混合)合并到一个应用程序中吗?
我有一个完全用Android Studio开发的应用程序。我需要创建第二个应用程序,这一个我想用phonegapp完成。这两个应用程序相互关联。。。因此,理想情况下,我想在同一个应用程序中结合两者。。。我所说的联合并不意味着他们需要合作。我想他们一起下载(作为同一个应用程序),并能够从一个到另一个应用程序与应用程序。。。因此,它们可以完全是两个独立的应用程序,但用户会认为它只是一个应用程序。我希望我能充分理解自己,这款混合应用程序使用带有Cordova插件的麦克风。有一段时间,我曾想把它和iframe放在一起,但我们会失去一个麦克风,它在Android中调用语音识别Google native,将其转换为文本并传递给编辑文本 所以我的问题是:Android 我可以将这两个应用程序(本地和混合)合并到一个应用程序中吗?,android,cordova,phonegap-build,Android,Cordova,Phonegap Build,我有一个完全用Android Studio开发的应用程序。我需要创建第二个应用程序,这一个我想用phonegapp完成。这两个应用程序相互关联。。。因此,理想情况下,我想在同一个应用程序中结合两者。。。我所说的联合并不意味着他们需要合作。我想他们一起下载(作为同一个应用程序),并能够从一个到另一个应用程序与应用程序。。。因此,它们可以完全是两个独立的应用程序,但用户会认为它只是一个应用程序。我希望我能充分理解自己,这款混合应用程序使用带有Cordova插件的麦克风。有一段时间,我曾想把它和ifr
Intent
s相互“交谈”,并使用ContentProvider
s共享数据。如果一个应用程序安装了,而另一个应用程序没有安装,你必须处理好这种情况
2) 在这种情况下,我看不出麦克风有什么特别的问题
然而,如果我是你,如果可能的话,我会选择使用单个应用程序。不过,我不确定phonegapp对这种实现的限制是什么。1)没有任何东西可以阻止您将两个应用程序作为一个应用程序(下载部分除外)。他们可以使用专用的Intent
s相互“交谈”,并使用ContentProvider
s共享数据。如果一个应用程序安装了,而另一个应用程序没有安装,你必须处理好这种情况
2) 在这种情况下,我看不出麦克风有什么特别的问题
然而,如果我是你,如果可能的话,我会选择使用单个应用程序。不过,我不确定这种实现的phonegapp限制是什么。是的,设置起来有点困难,但我已经让它工作了。我没有使用PhoneGap,但我使用的是Construct和Cordova插件,所以应该是类似的设置 首先,我获取了Cordova生成的所有web文件,并将它们放在
assets
目录中(如果您没有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
,否则将无法加载内容。允许播放音频需要最后一个设置,setMediaPlaybackRequireservesture()
不过,要让Cordova内容与应用程序的其余部分进行交互,还需要做更多的工作;您必须使用a才能执行此操作。是的,设置起来有点麻烦,但我已经让它工作了。我没有使用PhoneGap,但我使用的是Construct和Cordova插件,所以应该是类似的设置 首先,我获取了Cordova生成的所有web文件,并将它们放在
assets
目录中(如果您没有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
,否则将无法加载内容。允许播放音频需要最后一个设置,setMediaPlaybackRequireservesture()
不过,要让Cordova内容与应用程序的其余部分进行交互,还需要做更多的工作;您必须使用a才能这样做。我怀疑您是否能做到这一点。每个应用程序都有一个沙箱,但在你的情况下,你不只是想在两个应用程序之间进行通信,而是想在同一个沙箱下使用不同的技术运行。除非你想通过以下步骤:在Phonegap中生成aar文件,并将其用作android应用程序中的库——我怀疑你是否能做到这一点。每个应用程序都有一个沙箱,但在你的情况下,你不只是想在两个应用程序之间进行通信,而是想在同一个沙箱下使用不同的技术运行。除非,否则,您希望完成以下操作:在Phonegap中生成aar文件,并将其用作android应用程序中的库-此处