日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

把CordovaWebView嵌入到自己的應(yīng)用(Embedding WebViews)

 quasiceo 2015-06-24
以下以Android為例。

(1)下載最新版的Cordova-Android
https://github.com/apache/cordova-android/releases
2015/02/04 最新版:cordova-android-3.7.1.zip

(2)解壓到本地C盤后,通過(guò)命令行進(jìn)入C:\cordova-android-3.7.1\framework

(3)執(zhí)行命令“D:/android-sdk/tools/android update project -p .”
會(huì)生成以下兩個(gè)文件:
引用
local.properties
proguard-project.txt


(4)執(zhí)行命令 “ant jar”
會(huì)build這個(gè)Cordova的library工程,生成cordova-3.7.1.jar
引用
C:\cordova-android-3.7.1\framework\cordova-3.7.1.jar


(5)新建一個(gè)Android工程“CordovaViewSample”,把cordova-3.7.1.jar拷貝到libs文件夾下。

(6)在res/layout/activity_main.xml文件中加入以下代碼
Xml代碼  收藏代碼
  1. <org.apache.cordova.CordovaWebView  
  2.     android:id="@+id/tutorialView"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent" />  


(7)修改Activity,可以參考CordovaActivity.java
/framework/src/org/apache/cordova/CordovaActivity.java

Java代碼  收藏代碼
  1. public class MainActivity extends Activity implements CordovaInterface {  
  2.       
  3.     private final ExecutorService threadPool = Executors.newCachedThreadPool();  
  4.   
  5.     // The webview for our app  
  6.     protected CordovaWebView appView;  
  7.       
  8.     // Plugin to call when activity result is received  
  9.     protected int activityResultRequestCode;  
  10.     protected CordovaPlugin activityResultCallback;  
  11.       
  12.     protected CordovaPreferences prefs = new CordovaPreferences();  
  13.     protected Whitelist internalWhitelist = new Whitelist();  
  14.     protected Whitelist externalWhitelist = new Whitelist();  
  15.     protected ArrayList<PluginEntry> pluginEntries;  
  16.   
  17.     @Override  
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.activity_main);  
  21.           
  22.         appView = (CordovaWebView) findViewById(R.id.tutorialView);  
  23.           
  24.         internalWhitelist.addWhiteListEntry("*"false);  
  25.         externalWhitelist.addWhiteListEntry("tel:*"false);  
  26.         externalWhitelist.addWhiteListEntry("sms:*"false);  
  27.         prefs.set("loglevel""DEBUG");  
  28.           
  29.         appView.init(this, makeWebViewClient(appView), makeChromeClient(appView),  
  30.                 pluginEntries, internalWhitelist, externalWhitelist, prefs);  
  31.           
  32.         appView.loadUrlIntoView("http://m.jd.com/");  
  33.     }  
  34.       
  35.     protected CordovaWebViewClient makeWebViewClient(CordovaWebView webView) {  
  36.         return webView.makeWebViewClient(this);  
  37.     }  
  38.       
  39.     protected CordovaChromeClient makeChromeClient(CordovaWebView webView) {  
  40.         return webView.makeWebChromeClient(this);  
  41.     }  
  42.       
  43.     @Override  
  44.     public Activity getActivity() {  
  45.         return this;  
  46.     }  
  47.   
  48.     @Override  
  49.     public ExecutorService getThreadPool() {  
  50.         return threadPool;  
  51.     }  
  52.   
  53.     @Override  
  54.     public Object onMessage(String id, Object data) {  
  55.         if ("exit".equals(id)) {  
  56.             super.finish();  
  57.         }  
  58.         return null;  
  59.     }  
  60.   
  61.     @Override  
  62.     public void setActivityResultCallback(CordovaPlugin plugin) {  
  63.         if (activityResultCallback != null) {  
  64.             activityResultCallback.onActivityResult(activityResultRequestCode, Activity.RESULT_CANCELED, null);  
  65.         }  
  66.         this.activityResultCallback = plugin;  
  67.     }  
  68.   
  69.     @Override  
  70.     public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {  
  71.         setActivityResultCallback(command);  
  72.         try {  
  73.             startActivityForResult(intent, requestCode);  
  74.         } catch (RuntimeException e) {  
  75.             activityResultCallback = null;  
  76.             throw e;  
  77.         }  
  78.     }  
  79.       
  80. }  


(8)修改AndroidManifest.xml
Xml代碼  收藏代碼
  1. <uses-permission android:name="android.permission.INTERNET" />  


(9)編譯安裝到手機(jī),如下:


如果加載assets下的HTML的話,還需要:
  • 1)把HTML/Images/JS等文件拷貝到/assets/www下
  • 2)把/framework/res/xml/config.xml拷貝到/res/xml下

http://cordova./docs/en/4.0.0/guide_platforms_android_webview.md.html#Android%20WebViews
分享到:

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多