是的,這是一個痛苦位設立的,但我有它的工作。我沒有使用PhoneGap,但是我使用Construct和Cordova插件,所以它應該是一個類似的設置。
首先,我把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
才能這樣做。
我懷疑你能做到。它是每個應用程序的沙箱,但在您的情況下,您不只是想在兩個應用程序之間進行通信,而是使用不同的技術在同一個沙箱下運行。除非,你想要經歷以下幾點:在Phonegap中生成aar文件,並將其用作android應用程序中的庫 - 這裏http://imcodebased.com/android-share-code-multiple-applications/ – codebased