(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) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
wView = (WebView)findViewById(Ridwv1);
WebSettings wSet = wViewgetSettings();
wSetsetJavaScriptEnabled(true);
ProxyBridge pBridge = new ProxyBridge();
wViewaddJavascriptInterface(pBridge, "AliansBridge");
wViewloadUrl("file:///android_asset/indexhtml");
}
private class ProxyBridge {
public int one () {
return 1;
}
}
}
来看一下indexhtml的内容:
<html>
<mce:script language="javascript"><!--
/ This function is invoked by the activity /
function wave() {
alert("1");
documentgetElementById("droid")src="android_wavingpng";
alert("2");
}
// --></mce:script>
<body>
<div id="output">Test page</div>
<a onClick="windowdemoclickOnAndroid()">
<div style="width:100px;
margin:0px auto;
padding:10px;
text-align:center;
border:2px solid #202020;" >
<img id="droid" src="android_normalpng" mce_src="android_normalpng"/><br>
Click me!
</div>
</a>
<input type="submit" value="change to 1" onclick="documentgetElementById('output')innerHTML
=AliansBridgeone()" />
</body>
</html>
这里的AliansBridge即是调用的JAVA对象。
要注意的是,如果你只有一个方法需要被js调用只new一个对象就行:
ProxyBridge pBridge = new ProxyBridge();
wViewaddJavascriptInterface(pBridge, "AliansBridge");
如果你需要调用好多个方法,就要把整个android程序所在的类本身实例化传递进去:
wViewaddJavascriptInterface(this, "AliansBridge");
(2) android调用js的方法:wViewsetWebChromeClient (WebChromeClient client)
要用到Handler更新UI,Handler mHandler = new Handler();
mWebViewsetWebChromeClient(new MyWebChromeClient());
mWebViewaddJavascriptInterface(new Object(){
/
This is not called on the UI thread Post a runnable to invoke
loadUrl on the UI thread
/
public void clickOnAndroid() {
mHandlerpost(new Runnable() {
public void run() {
mWebViewloadUrl("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) {
resultconfirm();
return superonJsAlert(view, url, message, result);
}
}
压缩壳是一种对EXE文件的数据压缩及加密保护,可以将EXE文件压缩成自我解压文件,并能隐藏解压进程。
在免杀技术里所谓的壳与伪装壳其实就是压缩与外层数据伪装,其实是利用特殊的算法,对可执行文件与DLL文件里的资源进行压缩与对文件的描述、版本号、创建日期、修改软件、系统运行需求等外层数据进行伪装。
扩展资料:
压缩壳逻辑:
1、MFC实现的UI交互部分:展示壳的功能,获取被加壳程序的路径,显示加壳进度。
2、加壳功能Pack导出为一个dll,MFC部分动态加载。
3、壳的本体Stub,把数据段、只读数据段合并到代码段,添加到被加壳程序的最后。
压缩代码段,大概思路:通过text段头表找到text段,调用压缩库压缩。申请内存空间,大小=PE头+已压缩text+其他区段。依次从内存空间把文件拷贝过去:PE头、已压缩text段、其他区段,重组PE文件。同时,修改text的SizeOfRawData、修改其他区段的PointerToRawData。
软件系统。
程序数据及相关文档的集合称为软件系统,是运行的各种程序、数据及相关文档资料的集合。
软件系统主要包括 *** 作系统,语言处理程序,数据库系统,网络管理系统,可以应用软件设计、开发、测试、评估、运行检测中。
不用脱的,易语言编写的程序,一般都会被PEID等查壳软件检测为vc++60,不行你试试。而实际上他并没有加壳,通过易语言的静态编译都是这样,独立编译我不知道,很久就退休了。
不要跟我说你能查到写“易语言511”的壳哦。呵呵。
那我给你个参考资料,能不能解决看LZ的能力了。
>
以上就是关于webapp套用android的webview的壳子.怎么做数据交互全部的内容,包括:webapp套用android的webview的壳子.怎么做数据交互、请问什么是压缩壳、程序数据及相关文档的集合称为等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)