webapp套用android的webview的壳子.怎么做数据交互

webapp套用android的webview的壳子.怎么做数据交互,第1张

(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的壳子.怎么做数据交互、请问什么是压缩壳、程序数据及相关文档的集合称为等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9319171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存