`
rensanning
  • 浏览: 3548922 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38156
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607323
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682353
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89368
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401861
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69699
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91724
社区版块
存档分类
最新评论

把CordovaWebView嵌入到自己的应用(Embedding WebViews)

 
阅读更多
以下以Android为例。

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

(2)解压到本地C盘后,通过命令行进入C:\cordova-android-3.7.1\framework

(3)执行命令“D:/android-sdk/tools/android update project -p .”
会生成以下两个文件:
引用
local.properties
proguard-project.txt


(4)执行命令 “ant jar”
会build这个Cordova的library工程,生成cordova-3.7.1.jar
引用
C:\cordova-android-3.7.1\framework\cordova-3.7.1.jar


(5)新建一个Android工程“CordovaViewSample”,把cordova-3.7.1.jar拷贝到libs文件夹下。

(6)在res/layout/activity_main.xml文件中加入以下代码
<org.apache.cordova.CordovaWebView
    android:id="@+id/tutorialView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />


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

public class MainActivity extends Activity implements CordovaInterface {
	
	private final ExecutorService threadPool = Executors.newCachedThreadPool();

    // The webview for our app
	protected CordovaWebView appView;
	
    // Plugin to call when activity result is received
    protected int activityResultRequestCode;
    protected CordovaPlugin activityResultCallback;
    
    protected CordovaPreferences prefs = new CordovaPreferences();
    protected Whitelist internalWhitelist = new Whitelist();
    protected Whitelist externalWhitelist = new Whitelist();
    protected ArrayList<PluginEntry> pluginEntries;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		appView = (CordovaWebView) findViewById(R.id.tutorialView);
        
        internalWhitelist.addWhiteListEntry("*", false);
        externalWhitelist.addWhiteListEntry("tel:*", false);
        externalWhitelist.addWhiteListEntry("sms:*", false);
        prefs.set("loglevel", "DEBUG");
        
        appView.init(this, makeWebViewClient(appView), makeChromeClient(appView),
        		pluginEntries, internalWhitelist, externalWhitelist, prefs);
        
        appView.loadUrlIntoView("http://m.jd.com/");
	}
	
    protected CordovaWebViewClient makeWebViewClient(CordovaWebView webView) {
        return webView.makeWebViewClient(this);
    }
    
    protected CordovaChromeClient makeChromeClient(CordovaWebView webView) {
        return webView.makeWebChromeClient(this);
    }
    
	@Override
	public Activity getActivity() {
		return this;
	}

	@Override
	public ExecutorService getThreadPool() {
		return threadPool;
	}

	@Override
	public Object onMessage(String id, Object data) {
		if ("exit".equals(id)) {
			super.finish();
        }
		return null;
	}

	@Override
	public void setActivityResultCallback(CordovaPlugin plugin) {
        if (activityResultCallback != null) {
            activityResultCallback.onActivityResult(activityResultRequestCode, Activity.RESULT_CANCELED, null);
        }
        this.activityResultCallback = plugin;
	}

	@Override
	public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
		setActivityResultCallback(command);
		try {
			startActivityForResult(intent, requestCode);
		} catch (RuntimeException e) {
			activityResultCallback = null;
			throw e;
		}
	}
	
}


(8)修改AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />


(9)编译安装到手机,如下:


如果加载assets下的HTML的话,还需要:
  • 1)把HTML/Images/JS等文件拷贝到/assets/www下
  • 2)把/framework/res/xml/config.xml拷贝到/res/xml下

http://cordova.apache.org/docs/en/4.0.0/guide_platforms_android_webview.md.html#Android%20WebViews
  • 大小: 211.4 KB
分享到:
评论
9 楼 woshiluoyong 2016-02-18  
在楼主提供的github地址中https://github.com/apache/cordova-android/releases下载的最新版zip包(最新5.0.1的和楼主3.7.1的相差很大)中使用test目录中的例子时运行成功后点击主页操作无反应,排查后还需放一个cordova.js在www目录下面才能打开主页面上其他操作,这个最重要的不知官方怎么没有放,浪费我等大好时间,避免大家自己寻找麻烦,附cordova.js下载地址http://download.csdn.net/detail/luoyong123456/9435685
8 楼 lyhsmile 2015-12-21  
这个例子里,怎么处理手机返回键问题呢?
7 楼 dagmom 2015-12-01  
Mjing888 写道
dagmom 写道
android.view.InflateException: Binary XML file line #6: Error inflating class org.apache.cordova.CordovaWebView

会有这个异常,何解?

  不知道你解决了没有,求指导



3.7以后的版本暂不支持作为一个控件使用,我后来改用3.7了,毕竟我很多画面需要原生定制
6 楼 Mjing888 2015-11-28  
dagmom 写道
android.view.InflateException: Binary XML file line #6: Error inflating class org.apache.cordova.CordovaWebView

会有这个异常,何解?

  不知道你解决了没有,求指导
5 楼 Mjing888 2015-11-28  
dagmom 写道
android.view.InflateException: Binary XML file line #6: Error inflating class org.apache.cordova.CordovaWebView

会有这个异常,何解?

????同问
4 楼 Mjing888 2015-11-28  
[2015-11-28 14:49:58 - Dex Loader] Unable to execute dex: Multiple dex files define Lorg/apache/cordova/AuthenticationToken;
[2015-11-28 14:49:58 - MainActivity] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/apache/cordova/AuthenticationToken;
请问楼主,我把编译好的cordova-5.0.0.jar放在libs下,运行报以上错误,什么原因,我在网上查是jar包冲突,不知道这个包和哪些冲突呢,我也没加额外的什么jar包啊。
3 楼 Mjing888 2015-11-27  
博主 ,我在转化成jar之前也要执行android update project -p,但是我这里报错:Error:Missing argument for flag -p.怎么解决呢
2 楼 dagmom 2015-10-19  
android.view.InflateException: Binary XML file line #6: Error inflating class org.apache.cordova.CordovaWebView

会有这个异常,何解?
1 楼 旮旯2014 2015-04-22  
  

相关推荐

    局部线性嵌入(Locally linear embedding)1

    局部线性嵌入(Locally Linear Embedding) 局部线性嵌入(Locally Linear Embedding,LLE)是一种非线性降维算法,由 Sam T.Roweis 和 Lawrence K.Saul 于 2000 年提出并发表在《Science》杂志上。它能够使降维后...

    局部线性嵌入(Locally Linear Embedding,LLE)(Python)

    局部线性嵌入(Locally Linear Embedding,LLE)也是非常重要的降维方法。和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由于LLE在降维时保持了样本的局部特征,它广泛的...

    从Word2Vec到BERT:上下文嵌入 (Contextual Embedding) 最新综述论文.pdf

    当前文档提供了一篇综述论文的概述,该论文聚焦于上下文嵌入表示(Contextual Embedding)技术的最新发展。上下文嵌入表示是自然语言处理(NLP)领域的关键组成部分,其目标是通过将词或短语的含义与其上下文结合...

    Summary of the de-embedding methods 去嵌入总结.pdf

    去嵌入方法总结 去嵌入是指在测试结构中减去 pads 和 interconnect 的寄生效应,以获得真是的 DUT 数据。这是一个非常重要的步骤,对于 IC 设计师和工程师而言,能够获取纯净的 DUT 数据。 在本文中,我们将总结...

    pytorch中的embedding词向量的使用方法

    这通常涉及到使用numpy数组,然后将这个数组复制到嵌入层的权重矩阵中。需要注意的是,输入的权重矩阵必须与嵌入层的权重矩阵维度相匹配。例如,如果我们有预先训练好的词向量`pretrained_weight`,可以这样赋值: ...

    图嵌入(Graph embedding)综述论文.zip

    图嵌入(Graph Embedding)是机器学习领域中一个重要的研究方向,特别是在数据挖掘、社交网络分析、推荐系统以及自然语言处理等应用中扮演着关键角色。它旨在将图中的节点和边转换为低维向量表示,这些向量不仅保留...

    embedding理解.pdf

    在深度学习领域,**嵌入**(Embedding)是指一种将离散变量映射到连续向量空间的方法。这种技术特别适用于处理分类数据,通过将每个类别映射为一个低维的连续向量来表示。这种方式不仅可以减少数据的维度,还能够...

    Luotuo Embedding骆驼嵌入 is a text embedding model which develo.zip

    Jupyter-Notebook

    词嵌入原理及应用简介

    词嵌入(Word Embedding)是一种将词汇转化为数值向量的技术,这些向量能够捕获词汇之间的语义和语法关系。它已成为自然语言处理(NLP)领域中不可或缺的一部分。 #### 二、词嵌入的优点 相较于传统的词表示方法...

    Keras—embedding嵌入层的用法详解

    预训练的词嵌入模型通常从大量文本数据中学习到词的表示,因此包含了丰富的词汇语义信息。以下是如何在 Keras 中使用预训练的词嵌入模型: ```python def create_embedding(word_index, num_words, word2vec_model)...

    使Excel嵌入到SWT窗口中

    OleFrame是一个Composite,用于放置OLE控件,而OleClientSite提供了一个场所,用于把OLE对象嵌入到容器中。OleClientSite还提供了一个doVerb方法,用于显示OLE对象。 知识点五:OLE对象的Id 在本例中,我们使用...

    myEmb_embedding_

    综上所述,"myEmb_embedding_"项目旨在将networkx图数据进行有效的嵌入处理,以便后续分析和应用。通过`graph2sample.py`、`data2graph.py`和`graphAnalysis.py`三个脚本,分别实现了图数据的准备、嵌入学习和结果...

    具有层次注意隶属度的图嵌入_Graph Embedding with Hierarchical Attentive Member

    《具有层次注意隶属度的图嵌入:Graph Embedding with Hierarchical Attentive Membership》 在计算机科学领域,特别是图论和数据挖掘方面,利用图结构有效地学习节点表示是至关重要的,因为这些表示能保留图中的...

    Reversible Data Embedding Using a Difference Expansion算法实现

    在数字图像处理领域,数据隐藏技术是一种重要的应用,它允许我们在图像中嵌入额外的信息而不引起明显的视觉变化。"Reversible Data Embedding Using a Difference Expansion"(基于差分扩展的可逆数据嵌入)算法就是...

    C-C计算延迟时间和嵌入维数_计算延迟时间和嵌入维度_嵌入维度

    在时间序列分析中,理解和确定...总的来说,C-C计算延迟时间和嵌入维数是揭示时间序列内在动力学结构的关键技术,其准确性和有效性直接影响到后续的系统建模和预测。在处理非线性动力学系统时,这一方法显得尤为重要。

    Word-Embedding:仅用于词嵌入的数据

    4. 应用验证:将学到的词嵌入应用于特定任务,比如分类、聚类或文本生成,评估模型效果。 四、Word-Embedding-main项目可能包含的内容 "Word-Embedding-main"这个文件夹很可能包含了该项目的所有资源,包括: - ...

    Recommender systems based on graph embedding techniques

    本综述论文“Recommender systems based on graph embedding techniques”由电子科技大学的研究者撰写,全面回顾了图嵌入技术在推荐系统中的应用。论文分为三部分,分别探讨了二部图、一般图和知识图谱的嵌入技术在...

    使用单文档视图结构把Word嵌入到VC程序中

    在本文中,我们将深入探讨如何在C++编程环境中,利用单文档视图(Single Document View,SDI)结构将Microsoft Word嵌入到自定义的Windows应用程序中。这涉及到使用OLE(Object Linking and Embedding)技术,使得...

Global site tag (gtag.js) - Google Analytics