实现功能:在WebView上增加TitleBar。
- 1.布局文件(R.layout.activity_cordova_title)
2.自定义CordovaActivity类(CordovaTitleActivity)
参照源码copy过来的,因为要使用自定义布局,所以setContentView相关代码注掉
public class CordovaTitleActivity extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cordova_title); loadUrl(launchUrl); } @Override protected CordovaWebView makeWebView() { SystemWebView webView = (SystemWebView) findViewByI(R.id.cordov_webView); CordovaWebView cordovaWebView = new CordovaWebViewImpl(new SystemWebViewEngine(webView)); return cordovaWebView; } @Override protected void createViews() { //因为要使用自定义布局,此处setContentView需要注掉 // appView.getView().setId(100); // appView.getView().setLayoutParams(new FrameLayout.LayoutParams( // ViewGroup.LayoutParams.MATCH_PARENT, // ViewGroup.LayoutParams.MATCH_PARENT)); // setContentView(appView.getView()); if (preferences.contains("BackgroundColor")) { int backgroundColor = preferences.getInteger("BackgroundColor", Color.BLACK); // Background of activity: appView.getView().setBackgroundColor(backgroundColor); } appView.getView().requestFocusFromTouch(); } }3.使用Cordova需要注意的问题
1. 在Activity的onCreate方法中,loadUrl(launchUrl)调用之后,CordovaLib中的WebView对象appView才有值,因此使用appView时,必须写在loadUrl的后面。 2. 在Cordova中,appView是不能直接调用addJavascriptInterface()方法的,在调用该方法之前,需要加上一行代码: WebView Wv = (WebView) appView.getEngine().getView(); 调用WebView的其他方法类似。 九 在Fragment里使用CordovaWebView1.Fragment的布局文件(cordova_fragmrnt.xml)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <org.apache.cordova.engine.SystemWebView android:id="@+id/cordov_webView" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>