写在前面

前文说到。全APP用JS是很浪费的玩法。大多数时候。我不想要一个框架。二只想要一个增强的webview。 怎么办?cordova也提到了这种玩法: http://cordova.apache.org/docs/en/4.0.0/guide_hybrid_webviews_index.md.html
http://cordova.apache.org/docs/en/4.0.0/guide_platforms_ios_webview.md.html http://cordova.apache.org/docs/en/4.0.0/guide_platforms_android_webview.md.html
顺便推荐一个开发文档聚合http://devdocs.io/

但是写ios的同学太啰嗦了。光配置就写了21条步骤。我试了一下,大部分是默认值。所以常规情况下不需要啦。我重新整理下步骤:

  1. 建立工程
  2. 在工程目录下运行pod init, 会生成Podfile.
  3. 编辑文件加入:pod 'Cordova', '~> 3.6'
  4. 执行 pod install --no-repo-update
  5. 打开生成的.xcworkspace文件
  6. 把前文中工程目录下的www目录拷贝到工程目录下,拖入项目中,注意选择:作为引用 “create folder references”,拖入后文件夹是蓝色的。
  7. 把前文中工程目录下的config.xml和自己写的插件文件拖入新工程。这回选择作为拷贝,不要引用。
  8. 从StroryBoard里拖一个ViewController出来。给它建立对应的类文件。继承自CDVViewController
  9. 试运行一下。已经OK了。

下面搞一下Android

  1. 建立你的工程
  2. 在前文的android工程目录下的CordovaLib里执行gradle,会再outputs里生成CordovaLib-debug.aar 如果你是gradle管理的工程就可以用了。但我用得Intellij+老版工程结构。所以跳到下一步。
  3. 把CordovaLib目录拷贝到工程目录里。作为module引入。然后设置CordovaLib是一个lib模块,设置主工程对CordovaLib工程的引用。
  4. 拷贝上文的config.xml到res/xml/,拷贝上文的插件文件Echo.java到当前工程,拷贝上文的www到当前工程assets/
  5. 修改config.xml中插件的包名为新的包名。
  6. 修改main.xml

    <org.apache.cordova.CordovaWebView
    android:id="@+id/tutorialView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
    
  7. 修改Activity extends CordovaActivity

    public class MyActivity  extends CordovaActivity {
        CordovaWebView cwv;
        /**
         * Called when the activity is first created.
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            super.init();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                this.appView.setWebContentsDebuggingEnabled(true);
            }
            // Set by <content src="index.html" /> in config.xml
            loadUrl(launchUrl);
        }
    }
    
  8. 可以跑起来了

源码放在:https://bitbucket.org/fangj/cordova_webview