在Android Java代码中同时使用CordovaActivity和AppCompatActivity,可以通过以下步骤实现:
dependencies {
implementation 'org.apache.cordova:cordova-android:X.X.X'
implementation 'androidx.appcompat:appcompat:X.X.X'
}
其中,X.X.X代表对应的版本号。
import android.os.Bundle;
import org.apache.cordova.CordovaActivity;
import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.engine.SystemWebView;
public class MyActivity extends AppCompatActivity implements CordovaInterface {
private CordovaWebView cordovaWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
// 初始化CordovaWebView
cordovaWebView = new CordovaWebViewImpl(new SystemWebView(this));
cordovaWebView.init(this, new CordovaPreferences());
// 加载Cordova的HTML文件
cordovaWebView.loadUrl("file:///android_asset/www/index.html");
}
// 实现CordovaInterface接口的方法
@Override
public Object onMessage(String id, Object data) {
// 处理Cordova的消息
return null;
}
@Override
public void setActivityResultCallback(CordovaPlugin plugin) {
// 设置Cordova插件的结果回调
}
@Override
public Activity getActivity() {
return this;
}
@Override
public ExecutorService getThreadPool() {
return Executors.newCachedThreadPool();
}
@Override
public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
// 启动Activity并等待结果
}
@Override
public void requestPermission(CordovaPlugin plugin, int requestCode, String permission) {
// 请求权限
}
@Override
public boolean hasPermission(String permission) {
// 检查是否有权限
return false;
}
@Override
public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) throws JSONException {
// 处理权限请求结果
}
}
<activity android:name=".MyActivity" />
<android.webkit.WebView
android:id="@+id/cordovaWebView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
WebView webView = findViewById(R.id.cordovaWebView);
cordovaWebView = cordovaWebView.getEngine().getView();
@Override
protected void onResume() {
super.onResume();
cordovaWebView.onResume();
}
@Override
protected void onPause() {
super.onPause();
cordovaWebView.onPause();
}
通过以上步骤,你可以在Android Java代码中同时使用CordovaActivity和AppCompatActivity,实现Cordova和原生Android的混合开发。
TVP技术夜未眠
云+社区技术沙龙 [第30期]
云+社区技术沙龙[第9期]
企业创新在线学堂
云+社区沙龙online [新技术实践]
DBTalk技术分享会
云+社区技术沙龙[第27期]
云+社区技术沙龙[第14期]
领取专属 10元无门槛券
手把手带您无忧上云