在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
混合开发,登录是放在native这边的,但是用户id等信息,Web端也要知道。
header中加上用户id等信息,让后端获取到
webView.loadUrl()只能是连接跳转的时候才设置header
能不能Ajax操作的时候就使用WebView的统一设置的header
研究过重写WebViewClient.shouldInterceptRequest方法,但是需要自己实现InputStream,按别人的写法,网页的css加载不出来。
目前我的解决方法是在url中拼接好,让Web的开发拿到在Ajax上设置header。
有没人懂这方面的知识,求帮助。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:webapp套用android的webview的壳子.怎么做数据交互呢?能用ajax吗_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
webapp套用android的webview的壳子.怎么做数据交互呢?能用ajax吗
我有更好的答案
onCreate(savedInstanceState); setContentView(R (1) js调用android的方法;html>。 public class jsWebDemo extends Activity { WebView wView; /.png& mce_src=& document.getElementById(&/&&br& CAliansBridge&
wView! &/div>:0 padding:10 --&&/ / function wave() { alert(&1&change to 1& onclick=&body&div id=&output&&Test page.&/,则在js中使用的名字 就是interfaceN @Override public void onCreate(Bundle savedInstanceState) { wSet.setJavaScriptEnabled(true); <.addJavascriptInterface(pBridge, ", String interfaceName);是实例化一个对象.addJavascriptInterface(pBridge, & ProxyBridge pBridge = new ProxyBridge(); &//.demo.clickOnAndroid()&& &div style=&width:100 public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { mWebView; mWebView.setWebChromeClient(new MyWebChromeClient()); mWebVdroid&).src=&android_android_asset/2&); } //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); } }; <.wv1); WebSettings wSet = wVAliansBridge",在html的js中调用; 如果你需要调用好多个方法,就要把整个android程序所在的类本身实例化传递进去: wView.addJavascriptInterface(this, &/a>.addJavascriptInterface(new Object(){ /** * This is not called on the UI thread. Post a runnable to invoke * loadUrl on the UIfile:/android_normal.png& wView.html&document.getElementById('output' } } } 来看一下index.html的内容: &html& &mce:script language=&javascript&&&; (2) android调用js的方法:wView.setWebChromeClient (WebChromeClient client)要用到Handler更新UI,Handler mHandler = new Handler(); & alert(". addJavascriptInterface (O):WebView wView.loadUrl(&img id=&droid&AliansBridge",第二个参数是实例化对象的别名,如果要使用这个obj.layout.main); wView = (WebView)findViewById(R.id.png&:script&);input type=&submit& value=& & <.getSettings();): ProxyBridge pBridge = new ProxyBridge(); border:2px solid #202020;& & text-align:div& &a onClick=& 这里的AliansBridge即是调用的JAVA对象。 要注意的是,如果你只有一个方法需要被js调用只new一个对象就行; wV&);** Called when the activity is first created. *//body& &/.loadUrl(&)!-- /* This function is invoked by the activity */ src=&android_ } private class ProxyBridge { public int one () { return 1.innerHTML =AliansBridge.one()". */;wV)
资深电脑人
为您推荐:
其他类似问题
android的相关知识
等待您来回答问题: Android WebView中的Ajax操作能统一使用WebView设置的header吗?
描述:混合开发,登录是放在native这边的,但是用户id等信息,Web端也要知道。header中加上用户id等信息,让后端获取到webView.loadUrl()只能是连接跳转的时候才设置header能不能Ajax操作的时候就使用WebView的统一设置的header研究过重写WebViewClient.shouldInterceptRequest方法,但是需要自己实现InputStream,按别人的写法,网页的css加载不出来。目前我的解决方法是在url中拼接好,让Web的开发拿到在Ajax上设置header。有没人懂这方面的知识,求帮助。解决方案1:WebViewJavascriptBridge
以上介绍了“ Android WebView中的Ajax操作能统一使用WebView设置的header吗?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:/itwd/3225463.html
上一篇: 下一篇:关于webView.goBack()的问题 - Android,webView.goBack() - mobile - ITeye论坛
关于webView.goBack()的问题
锁定老帖子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
yzsunlight
等级: 初级会员
来自: 杭州
发表时间:&&
相关知识库:
目前开发一应用,应用中使用webView控件,碰到一个问题,点返回(webView.goBack())按钮的时候,大部分页面都是没问题的,但是有一个含有ajax的页面出现了一个问题。如下以A,B,C 3个页面举例子
A页面为一个普通页面
B页面为一个含有Ajax操作的页面
C页面为一个普通页面
A页面点连接进入B页面,B页面点连接进入C页面
C页面点应用提供的返回按钮(调用webView.goBack()),出现如下错误
Refused to set unsafe header "Content-Length" at :1
Refused to set unsafe header "Connection" at :1
也就是B页面的Ajax代码没有正确执行。
-----------------------------------------------
也怀疑是 xmlHttp.setRequestHeader引起的,但是A进入B页面的时候都可以正常执行,为什么C返回B页面就提示这个问题?
跳转论坛:移动开发技术
Web前端技术
Java企业应用
编程语言技术}