⑴ webapp套用android的webview的壳子.怎么做数据交互
(1) js调用android的方法:
WebView wView;
wView. addjavascriptInterface (Object obj, String interfaceName);
是实例化一个对象,在html的js中调用,第二个参数是实例化对象的别名,如果要使用这个obj,则在js中使用的名字
就是interfaceName。
public class jsWebDemo extends Activity {
WebView wView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wView = (WebView)findViewById(R.id.wv1);
WebSettings wSet = wView.getSettings();
wSet.setJavaScriptEnabled(true);
ProxyBridge pBridge = new ProxyBridge();
wView.addJavascriptInterface(pBridge, "AliansBridge");
wView.loadUrl("file:///android_asset/index.html");
}
private class ProxyBridge {
public int one () {
return 1;
}
}
}
来看一下index.html的内容:
<html>
<mce:script language="javascript"><!--
/* This function is invoked by the activity */
function wave() {
alert("1");
document.getElementById("droid").src="android_waving.png";
alert("2");
}
// --></mce:script>
<body>
<div id="output">Test page.</div>
<a onClick="window.demo.clickOnAndroid()">
<div style="width:100px;
margin:0px auto;
padding:10px;
text-align:center;
border:2px solid #202020;" >
<img id="droid" src="android_normal.png" mce_src="android_normal.png"/><br>
Click me!
</div>
</a>
<input type="submit" value="change to 1" onclick="document.getElementById('output').innerHTML
=AliansBridge.one()" />
</body>
</html>
这里的AliansBridge即是调用的JAVA对象。
要注意的是,如果你只有一个方法需要被js调用只new一个对象就行:
ProxyBridge pBridge = new ProxyBridge();
wView.addJavascriptInterface(pBridge, "AliansBridge");
如果你需要调用好多个方法,就要把整个android程序所在的类本身实例化传递进去:
wView.addJavascriptInterface(this, "AliansBridge");
(2) android调用js的方法:wView.setWebChromeClient (WebChromeClient client)
要用到Handler更新UI,Handler mHandler = new Handler();
mWebView.setWebChromeClient(new MyWebChromeClient());
mWebView.addJavascriptInterface(new Object(){
/**
* This is not called on the UI thread. Post a runnable to invoke
* loadUrl on the UI thread.
*/
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
mWebView.loadUrl("javascript:wave()");
}
});
}
}, "demo");
同理,在html中必须有一个名为demo的对象调用clickOnAndroid()方法。
/**
* Provides a hook for calling "alert" from javascript. Useful for
* debugging your javascript.
*/
final class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message,
JsResult result) {
result.confirm();
return super.onJsAlert(view, url, message, result);
}
}
⑵ 给Web套个壳让它变成Android APP,有哪些现有的工具
appcan是国内比较老牌的平台,apicloud是新起之秀,phonegap是国外的大牌。
长期来看,phonegap是开源的,理所当然是技术最好。但是中文资料较少,国内应用的也不多。
appcan近期被apicloud蹂躏得不行不行的,基本全方位被碾压了。渐渐处于apicloud下风,后力不继。
apicloud还提供了简单的后端api,用户系统,自定义字段什么的基本不用写后端代码了。
但是最后我要劝你一句,不要用这种混合打包平台,最终都是然并卵的。君不见淘宝技术有多牛,写出来的app(html5)还是卡到死。
⑶ 安卓怎么嵌入web本地网页
第一步:
存放本地html文件:放在app/src/main/assets目录下,一般来说Androidstudio项目下是没有assets文件夹的,所以需要在app/src/main下新建一个文件夹,取名assets.如图:
新建文件夹assets
2.第二步就在在你的xml布局文件中,假如webview元素,接着访问本地的html文件,功能很简单,代码如下:
WebView webview = (WebView)findViewById(R.id.webview);
webview.loadUrl("file:///android_asset/normal.html");
⑷ 给Web套个壳让它变成Android APP,有哪些现有的工具
Appmakr是国外最流行的DIY移动应用开发工具,目前支持iOS、Android和WindowsPhone等系统。Appmakr可以让用户无需编程就能创见iOS和Android应用。此外,Appmakr还能将网站连接到应用程序、支持HTML5、推送通知和广告支持。用户可以使用自己的开发许可,将应用程序发布到所属的应用商店中进行推广。像appmakr这类的工具还有很多,尤其是国内有很多,我给你举几个例子。1.APICloudAppmakr虽然好用,但是国外的。在国内使用起来,还是有些麻烦。国内也有这样的App开发工具——APICloud。APICloud是一款“云端一体”的移动开发平台。使用APICloud开发平台,是用Web语言去开发iOS和Android应用,这样将开发难度大幅降低,开发周期缩短将近一倍。此外,APICloud平台上有数百个各式各样的功能模块,方便去开发各类App。2.AttendifyAttendify是一个便捷的应用开发服务平台,支持iOS和Android两大平台,主要是通过提供大量的应用模板来实现快速开发。Attendify支持使用者在创建应用的过程中实时预览和管理应用,当然,用户也可以自己DIY。在应用推广方面,Attendify会把创建好的应用及时发布到AppStore和GooglePlay,帮助用户推送应用。3.AppsBuilderAppsBuilder是一个跨平台的在线开发工具,为用户提供快速的原声应用解决方案。AppsBuilder可实现定制的视觉设计和实现应用跨平台的能力,其内置插件可以将博客网站直接转换成原生手机应用。AppsBuilder支持的系统平台比较多,包括iPhone、iPad、WindowsPhone、Android、Chrome,甚至还有HTML5,但是AppsBuilder的主要使用者还是非专业的开发人员。4.appMobiAppMobi推出的全新开发工具XDK,使得用户只要会HTML5、CSS3或JavaScript代码,就可以使用XDK编写程序,不需要学习ObjectiveC或下载其他的软件开发工具包。XDK让用户可以使用行业标准来构建应用程序,同时提供了AppMobi自有的JavaScript库,包含类似转换滤镜和滚动条等内容。5.AppMachineAppMachine是一款跨平台的快速开发工具,目前支持iOS和Android两大主流平台。用户可以通过修改AppMachine所提供的20种应用设计模板来进行App设计。这样一来,没有编程经验的用户也可以通过使用AppMachine来创建App。另外用户也可以自己DIY,添加包括新闻、LBS、社交媒体、拍照、摄像等多个集成内容。除了提供模板,AppMachine也支持自定义。
⑸ 个安卓APP有没有壳,如果有壳的话怎么查出是什么壳
会技术就解包,直接将APK解压,之后查看源代码,看配置文件!
可以尝试长按页面,有一些壳子里面是加了原生功能的,比如一门APP打包的,长按可以有复制网址,复制图片,复制文字,在浏览器里面打开等功能,点击复制链接,到浏览器里面打开就知道他的壳的原URL是多少咯
⑹ android webview 实质是不是就是在html5的基础上添加了一个外壳
关于Android WebView可以查看一下Android的API文档WebView - Android SDK
而H5是html的一个标准HTML 5 简介
所以说它俩是有本质上的区别的,当然联系是WebView可以展现html,Android的WebView已经从webkit内核过渡到了chromium内核,对于H5的支持,更多地依赖于chromium。
⑺ 给Web套个壳让它变成Android APP,有哪些现有的工具
就我个人而言去除 QT 源生之外, 也使用过H5开发。 你说的WEB套壳应该就是 H5开发。说两款我用过的 Hbuilder + MUI 和 Apicloud 都是基于H5开发的, 会写前端就能进行安卓 苹果 应用的开发。个人比较推荐apicloud, Apicloud有自己的模块中心,有很多别人封装好的底层模块代码, 直接可以通过JS调用, 而且一直在丰富, 这点稍好于Hbuilder。apicloud社区也不错, 每周都有一次 所谓的 专家答疑, 如果是初次使用H5开发 , 还是比较推荐的。