Phonegap 原生控件(Android)与html混合

Posted work hard work smart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Phonegap 原生控件(Android)与html混合相关的知识,希望对你有一定的参考价值。

1. 用命令创建cordova项目

cordova coreate hello com.example.hello hello

 

2.打开MainActivity

在onCreate方法中加入

setContentView(R.layout.main_activity);

 

3. main_activity文件如下:

<?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" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="45dip"
        android:background="#25C28B" >

        <ImageButton
            android:id="@+id/cordova_back"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="#00FFFFFF"
            android:paddingLeft="10dp"
            android:paddingRight="20dp"
            android:src="@drawable/back_all" />

        <TextView
            android:id="@+id/cordova_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="原生头部"
            android:textColor="#FFFFFF"
            android:textSize="20sp" />

        <Button
            android:id="@+id/btn_report"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:background="#00FFFFFF"
            android:paddingLeft="10dp"
            android:paddingRight="20dp"
            android:text="报告"
            android:textColor="#FFFFFF"
            android:textSize="20sp" />
    </RelativeLayout>

    <org.apache.cordova.engine.SystemWebView
        android:id="@+id/cordovaWebView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

  SystemWebView是一个扩展的webview

 

4. 重新makeWebView方法和createViews方法

  @Override
    protected CordovaWebView makeWebView() {
        SystemWebView webView = (SystemWebView) findViewById(R.id.cordovaWebView);
        CordovaWebView cordovaWebView = new CordovaWebViewImpl(new SystemWebViewEngine(webView));
        return cordovaWebView;
    }

  cordovaWebView对于xml里的SystemWebView 控件

 

   @Override
    protected void createViews() {
        if (preferences.contains("BackgroundColor")) {
            int backgroundColor = preferences.getInteger("BackgroundColor", Color.BLACK);
            // Background of activity:
            appView.getView().setBackgroundColor(backgroundColor);
        }
        appView.getView().requestFocusFromTouch();
    }
  

  

 

5. 效果图

 

 


以上是关于Phonegap 原生控件(Android)与html混合的主要内容,如果未能解决你的问题,请参考以下文章

在用户不知情的情况下,将现有的原生应用与基于 cordova/phonegap 的应用交换

如何在 Android 的原生视图之上覆盖 PhoneGap 的 CordovaWebView?

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

适用于 Android 的 JQuery Mobile + PhoneGap - 加载 index.html 时出错

我们可以使用 phonegap 访问 HTML5 和 javascript 中的 Android 设备的联系人列表、相机图片等原生内容吗?

如何将 UIImage 传递给 phonegap 以在 Image 控件中查看?