如何在Android webview中设置Javascript属性
我正在构建一个 Android 应用程序,将 Web 应用程序加载到 Web 视图中。当用户在浏览器中访问 Web 应用程序时,会出现一个弹出窗口,询问他们是否要为该页面添加书签。
对于本机应用程序,我想删除它。
对于 iPhone,我能够执行此操作:
[webView stringByEvaluatingJavaScriptFromString:@"AppConfig.showBookmarkPrompt=false;"];
对于 Android,我尝试了以下操作:
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:(function(){"+
"AppConfig.showBookmarkPrompt=false;})()");
}
Android 版本不起作用。我认为 JavaScript 是在书签弹出窗口显示后运行的。我真的不知道为什么 iPhone 版本可以用,而 Android 版本不行。
我还有很多其他方法可以实现我的目标,但我想知道是否有人可以解释为什么 iPhone 方法有效,以及 Android 中是否有类似的方法。我一直在通过谷歌搜索阅读有关它的内容,但我仍然不完全清楚。
感谢我得到的任何帮助。
编辑
问题是对于Android,我在JavaScript中传递一个函数,我应该像这样设置属性: view.loadUrl("javascript:AppConfig.showBookmarkPrompt=false;");
它的执行方式一定有一些我不太明白的差异。
I am building an Android application that loads a web application in to a web view. When a user visits the web application in a browser a pop up asking if they want to bookmark the page appears.
For the native app I want remove this.
For iPhone I was able to do this:
[webView stringByEvaluatingJavaScriptFromString:@"AppConfig.showBookmarkPrompt=false;"];
For Android I tried this:
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:(function(){"+
"AppConfig.showBookmarkPrompt=false;})()");
}
The Android version doesn't work. I presume that the javascript is being run after the bookmark popup has been shown. I don't really know why the iPhone version does works and not the Android.
There are many other ways I can achieve my goals but I am wondering if anybody can explain why the iPhone method works and if there is something similar in Android. I have been reading about it through Google searches but it is still not entirely clear to me.
Thanks for any help I get.
EDIT
The problem was for Android I was passing a function in JavaScript where I should have just set the property like this: view.loadUrl("javascript:AppConfig.showBookmarkPrompt=false;");
There must be some difference in the way it is executed that I don't quite understand.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将其放在 Activity 的 onCreate() 上..
然后调用您的代码...
有关详细信息,请参阅 这里。
put this on onCreate() of Activity..
then call your code...
For more info look at here.