最近,需要在Sencha Touch + Phonegap的架构中在Android下集成Webtrends,记录下一些过程,

查了下官网SDK说明,看起来是支持在混合模式下做点事情的,大概步骤如下,

   

  1. Add a custom 
    WebViewClient

    to the 
    WebView

    to handle communication from JavaScript in the embedded web content to the native application.

    • For a basic implementation, use the 
      extendsWebView

      helper method in the 
      WebtrendsDataCollector

      to add the Webtrends custom 
      WebViewClient

      :

      StringURL ="file:///android_asset/WebContent/webViewContent.html";WebViewwv =(WebView)findViewById(R.id.webView1);wv.getSettings().setJavaScriptEnabled(true);WebtrendsDataCollector.getInstance().extendsWebView(wv);wv.loadUrl(URL);
    • If your application uses its own custom WebViewClient, you should not use the 
      extendsWebView

      helper method. Instead, ensure that the 
      WebtrendsWebViewClient

      also gets invoked by following these steps:

    1. Modify your custom 
      WebViewClient

      to extend 
      WebtrendsWebViewClient

      instead of 
      WebViewClient

      .

    2. If you are overriding 
      onLoadResource

      , call 
      super.onLoadResource

      .

    3. Set your custom 
      WebViewClient

      on your 
      WebView

      .

      importandroid.webkit.WebView;importcom.webtrends.mobile.analytics.android.webViewExtension.WebtrendsWebViewClient;publicclassMyCustomWebViewClientextendsWebtrendsWebViewClient{@OverridepublicvoidonLoadResource(WebViewview,Stringurl){super.onLoadResource(view,url);}}
      StringURL ="file:///android_asset/WebContent/webViewContent.html";WebViewwv =(WebView)findViewById(R.id.webView1);wv.getSettings().setJavaScriptEnabled(true);wv.setWebViewClient(newMyCustomWebViewClient());wv.loadUrl(URL);
  2. Add 
    WebtrendsMobileLib.js

    to the content that will be loaded in the WebView. 
    WebtrendsMobileLib.js

    is delivered as part of the Webtrends Mobile Library for Android.

  3. Use the 
    WebtrendsLib

    to generate events. In the embedded web content, use the JavaScript helper functions of the 
    webtrendsLib

    object to generate events through the native app. A JavaScript helper function exists for each of the event helper functions exposed in the native Webtrends SDK. The JavaScript helper functions take the same arguments as the native helper functions.

    <html><head><scripttype="text/javascript"src="js/WebtrendsMobileLib.js"></script><scripttype="text/javascript">functionsendButtonClickEvent(){vareventPath ="/HelloWorld/button/click";vareventDesc ="HelloWorld Button Click Event";vareventType ="click";varcustomData ={customKey :"CustomValue"};webtrendsLib.onButtonClick(eventPath,eventDesc,eventType,customData);}</script></head><body><div><inputtype="button"onclick="sendButtonClickEvent()"value="Click Me"></input></div></body></html>
这时候问题来了,用了Phonegap后默认MainActivity要继承CordovaActivity,而如果要集成Webtrends,又得继承WebtrendsActivity,在Java下面不支持多继承,怎么搞呢。。。看来只能出大招了,把WebtrendsSDK反编译,

看起来代码还不算多,把WebtrendsActivity.java里面的代码拷出来,粘贴到自己新建的的MyWebtrendsActivity.java,然后让MyWebtrendsActivity继承CordovaActivity,最后让MainActivity继承MyWebtrendsActivity,用组合的方法解决多重继承,继续一番折腾后,it works.

另一个问题就是如果有了自己的WebClient,还需要去继承WebtrendsWebViewClient,不幸的是PhoneGap还真实现了自己的WebViewClient,即CordovaWebViewClient,又是同样的问题,去修改PhoneGap的代码不现实也不科学。咋搞呢??纠结了一番后,发现万幸的事情,在Webtrends代码中WebtrendsDataCollector.getInstance().extendsWebView(webView);像上面说的,webview是一个原生的webview,如果有自己的webview,必须继承WebtrendsWebViewClient。我试了下把CordovaWebView传进来,也可以,不用自己去实现,汗Σ( ° △ °|||)︴
这两个问题后,其他都还好。注意在配置中修改timezone以及wt_dc_dcsid是必须的,wt_dc_dcsid需要跟Webtrends拿,估计价格不菲吧,我们是客户提供的,直接粘贴。
SDK的下载也比较奇葩,需要发贴跟管理员申请才能链接。

转载于:https://www.cnblogs.com/yodateam/p/4206022.html

Android Mobile Web 集成 Webtrends相关推荐

  1. 一个整合OkHttp 、Retrofit 、Volley 、RxJava、Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决

    一个整合OkHttp .Retrofit .Volley .RxJava.Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决 AndroidHttp 一个 ...

  2. Google IO 16 / Mobile Web 笔记

    移动的 Web IO16 的 Web 技术话题大类直接叫作 "Mobile Web",移动的概念已经涵盖了整个 Web,而非只是 Web 的一部分了. 最近几天看了不少 IO16 ...

  3. mobile web retina 下 1px 边框解决方案

    http://www.tuicool.com/articles/ZRv6bun 再谈mobile web retina 下 1px 边框解决方案 时间 2015-01-03 12:03:31  Hug ...

  4. mobile web开发遇到的问题

    移动web开发之道(Android与Iphone) 1.javascript篇 (1)使用querySelector和querySelectorAll这两个方法获取文档对象中DOM节点的引用 由于这两 ...

  5. iPhone和Android的WEB应用开发详解

    iPhone和Android的WEB应用开发详解 在我们现在的生活中,移动设备的作用日益重要.我们使用它们进行交流.我们使用它们进行导航.我们甚至可以将它们用作方便的手电筒.面向 iPhone 和 A ...

  6. 关于Mobile Web App你所应该知道的

    Native App与Web App的争论从未停息过,尽管很多人在批判Web App的各种不是,但也阻止不了各种各样的Web App如雨后春笋般出现,尤其是伴随智能手机的普及而受到重视的Mobile ...

  7. Android开发丶集成微信原生分享并于分享网页时加载网络缩略图

    微信分享也是一项很常用的功能了,以往都是用友盟或者mobShareSDK框架来实现的,这两者在微信官方的sdk基础上封装的很好,并且加入了一些很实用性的功能,不过这次因为只有微信平台的分享,而且微信登 ...

  8. Android平台上集成海康SDK(二)

    Android平台上集成海康SDK 以上是我之前写的一篇Android平台上集成海康SDK的文章,其中对于Android平台上集成海康SDK.基于海康SDK进行二次开发基本上进行了详细地介绍. 这篇文 ...

  9. WEB集成管理与应用实例

    WEB集成管理定义与应用意义 定义: Web集成管理是指企业自身在网络上的推广.宣传.客户接触.互动等进行统一全方位的网络商业应用的解决方案. 应用意义: Web集成管理是指CRM系统中,对与客户接触 ...

  10. 一个基于SAE Channel的综合应用--mobile web IM(1)

    2019独角兽企业重金招聘Python工程师标准>>> 关键词:Mobile IM, SAE Channel, JQM动态加载, 滚动刷新,设计模式,编程范式 Hi, 我是Leona ...

最新文章

  1. 2017-7-6日记
  2. pycharm怎么关联python_Python3 安装pylint 及与PyCharm关联
  3. 一文让您搞清楚@Resources, @Inject和@Autowired的区别
  4. C#LeetCode刷题之#605-种花问题( Can Place Flowers)
  5. 漫步凸分析八——回收锥与无界
  6. linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解-转
  7. Oracle function注释
  8. lock.tryLock()使用与synchronized比较
  9. springboot - 整合多数据源配置
  10. 【Python入门教程】第70篇 创建文本文件
  11. Process Explorer工具
  12. 微信公众平台开发网页开发
  13. python笔记(一) 数据类型 函数
  14. 以欺诈和乌托邦主义来划分加密货币的四个象限
  15. 计算机中的right函数,right函数用法实例
  16. 浏览器主页被搜狗篡改
  17. tomcat下载和配置(简单,详细)
  18. EXCEL的几个取整函数对比,int() round() ceiling() ceiling.math()等
  19. 高频词 词云图 文本重心 聚类
  20. 算法笔记4.5.2二分扩展:凸多边形的外接圆之最大半径

热门文章

  1. 贪吃蛇python语言代码大全_Python编程代码:经典贪吃蛇
  2. win7卡在正在启动windows界面_电脑在“windows正在启动” 画面停留的时间长如何办...
  3. eplan打开提示激活许可_EPLAN 2.8将采用最新的licensing许可技术
  4. oracle数据库的增删改查
  5. 运用递归实现快速排序算法(二分排序)
  6. VSTO word操作
  7. OpenCV——无法打开“opencv2/opencv.hpp”文件
  8. 四维星装饰选材软件免费版
  9. 华为交换机模拟器为什么不能配置IP(或反)?如何在华为设备上配置远程管理设备?如何保存ENSP的配置...
  10. java 读取网络js文件_JavaScript 读写文件