gpt4 book ai didi

android - 为什么 addJavascriptInterface 在发布后不起作用?

转载 作者:行者123 更新时间:2023-11-29 15:58:21 25 4
gpt4 key购买 nike

我在我的应用程序中使用 addJavascriptInterface 从 Javascript 弹出一个共享窗口。

问题是:当我在开发环境中使用我的手机时,我可以看到弹出窗口。但同样在发布到谷歌和下载后不起作用。我正在使用 Android 4.2 Jellybean 移动设备进行测试。

我尝试了几种方法,但都没有用。

------------onCreate------------

wvMainMenu = (WebView) findViewById(R.id.wvMainMenu);

    wvMainMenu.getSettings().setJavaScriptEnabled(true);
wvMainMenu.getSettings().setLightTouchEnabled(true);
wvMainMenu.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wvMainMenu.addJavascriptInterface(new WebappInterface(this), "Android");

--------Javascript 内部----------------

函数 share_it(id) {

Android.share_this(msg[id]);

-----WebappInterface.java--------

@JavascriptInterface public void share_this(String str) {

    Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);

String sharedText = "Text to share " + str;

sendIntent.putExtra(Intent.EXTRA_TEXT, sharedText);
sendIntent.setType("text/plain");
mContext.startActivity(sendIntent);



}

最佳答案

好的。没有人回答,但我自己解决了问题。当您使用 Proguard 时,您的方法名称会发生​​变化。因此,在从 javascript 调用它们时,由于方法名称更改,调用方法不起作用。

所以这里发生了什么,当我在开发期间运行时,由于开发中没有 Proguard,它工作正常。但是当生成签名的 apk 时,Proguard 会混淆方法名称并停止 javascript 接口(interface)运行。

你有两个选择:1.禁用Proguard2.为Proguard添加异常

关于android - 为什么 addJavascriptInterface 在发布后不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com