为WebView强制移动版网站(Force mobile version of website for WebView)
我正在将URL加载到webview中以将其显示到我的应用程序中。 我遇到的问题是,并不总是网站认识到我是一部手机(为什么会如此?)。 我如何强制webview发送到我是手机的网站? 目前我正是这样做的
webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");
但这不起作用? 它不会起作用,因为我没有使用iPhone吗? 我不认为这是因为它只是设置用户代理...
这是相关的代码(irelevant代码只包含数据,如从意图获取URL并格式化字符串)
//package //imports public class WebViewing extends Activity { private WebView webview; private ProgressDialog dialog; //init strings @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webviewer); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); //init variables //get intent data and format string this.webview = (WebView) findViewById(R.id.webView1); webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"); webview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { if (dialog.isShowing()) { dialog.dismiss(); } } public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); dialog.setMessage("Website wird geladen...\nDies ist abh\u00E4ngig von deiner Internet-Verbindung."); dialog.setCanceledOnTouchOutside(false); dialog.show(); webview.loadUrl(sourceURL); setTitle("Platz: " + plusRank + " - " + realDate); } //onCreateOptionsMenu method //onOptionsItemSelected method }
我也为用户代理尝试了这个字符串
Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
I'm loading an URL into a webview to display it into my app. The problem I'm encountering is, that not always the site recognizes that I'm a phone (why so ever?). How exactly do I force the webview to send to the site that I'm a mobile phone? Currently I'm doing it like that
webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");
But that doesn't work? Won't it work because I'm not using an iPhone? I don't think that this is the reason since it's just setting the user Agent...
This is the relevant code (the irelevant code just contains data such as getting an url from an intent and formatting a string )
//package //imports public class WebViewing extends Activity { private WebView webview; private ProgressDialog dialog; //init strings @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webviewer); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); //init variables //get intent data and format string this.webview = (WebView) findViewById(R.id.webView1); webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"); webview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { if (dialog.isShowing()) { dialog.dismiss(); } } public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); dialog.setMessage("Website wird geladen...\nDies ist abh\u00E4ngig von deiner Internet-Verbindung."); dialog.setCanceledOnTouchOutside(false); dialog.show(); webview.loadUrl(sourceURL); setTitle("Platz: " + plusRank + " - " + realDate); } //onCreateOptionsMenu method //onOptionsItemSelected method }
I also tried out this string for the user agent
Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
原文:https://stackoverflow.com/questions/19680979
最满意答案
一个可行的选项(使用http://gskinner.com/RegExr测试)是:
(?<![£0-9])[0-9]+
这使用负面的lookbehind来排除£。 除了“2012”之外,额外排除0-9是为了防止它在上面找到“27”。
One option which works (as tested using http://gskinner.com/RegExr) is:
(?<![£0-9])[0-9]+
This uses negative lookbehind to exclude £. The additional exclusion of 0-9 is to prevent it finding "27" in the above in addition to the "2012".
相关问答
更多-
由于你的预期匹配不是空字符串(如果没有[\d\s,\-\/]*模式,你当前的表达式 - /^[\d\s,\-\/]*/ - 匹配空字符串在字符串的开头匹配)并且在匹配结束时总是有一个数字,你可以在模式的末尾添加\d : /^[\d\s,\/-]*\d/ ^^ 请参阅正则表达式演示 。 图案细节 ^ - 字符串锚点的开始 [\d\s,\/-]* - 零个或多个数字,空格,或/或- (注意当它位于字符类的最末端时无需转义连字符) \d - 一个数字。 Since your expec ...
-
正则表达式匹配行以空格开头,第一个字符不是数字(Regex match line starting with whitespace and first character is non-digit)[2022-04-21]
请参阅这里使用的正则表达式 ^(?! +\d+ ).*\n* ^断言位置在行首 (?! +\d+ )负向前视确保接下来不是一个或多个空格,然后是一个或多个数字,然后是一个空格 .*匹配任何字符( \n除外)任意次数 \n*匹配任意数量的换行符 结果: 1 1/153 M0139 1:15:08 2:05:50 2:29:20 2:29:20 5:42 Eric 2 2/153 M0139 1:15:07 2:06:29 2:29:56* 2:29:56 5:44 Br ... -
正则表达式强制特定长度,同时不以数字开头(Regex to force a specific length and at the same time not starting with a number)[2022-03-09]
您需要在^之后放置前瞻,并将[^0-9_]替换为[A-Za-z$£] : ^(?=.*[A-Z])(?=.*[0-9])(?=.*[$£_])[A-Za-z$£][A-Za-z0-9$£_]{7,9}$ 看到这个正则表达式演示 。 否则,第一个[^0-9_]匹配^ , &等不是数字或_ ,并且前瞻只在第一个字符后查找所需的模式。 因此,任何仅在其开头具有必需字符的有效字符串将失败。 或者,将[^0-9_]转换为负(?![0-9_]) (然后由于前瞻模式,您需要将{7,9}替换为{8,10}是非消费的): ... -
一个可行的选项(使用http://gskinner.com/RegExr测试)是: (?由于Javascript正则表达式不具备lookbehind功能,因此无法通过简单模式捕捉您想要的内容。 但是,在替换上下文中,可以使用函数作为替换参数和模式来系统地尝试捕获不想要的部分,从而可以轻松地处理此问题: var result = yourstr.replace(/(#SN-)?\b[A-Z]+[0-9]+\b/g, function(m,g1) { return g1 ? m : 'yourreplacement'; }); 当捕获组1被定义时,函数返回整个匹配,否则返回替换字符串。 ...像这样的东西可以为你工作: \b[Gg]et(?!\w*[Dd]etails)\w+s\b Something like this could work for you: \b[Gg]et(?!\w*[Dd]etails)\w+s\b如果你想删除除第一个实例以外的所有实例. ,这在JS中不可能用简单的表达式,因为它需要lookbehind。 所以你必须将你的正则表达式与这个方法结合起来,得到类似的东西:如果符合您的模式,您将需要使用负向前瞻来“停止”匹配。 所以,这样的事情可能有效: (\\n(?![0-9][a-zA-Z])) 请在此处查看: https : //regex101.com/r/zL1tL8/2 这是一个页面,其中包含有关前瞻和后瞻的更多信息: http : //www.rexegg.com/regex-lookarounds.html You'll want to use a negative lookahead to "stop" the match if something aft ...我建议你用这个: preg_match_all("/(?
Python正则表达式 - 使用先前匹配的字符匹配字符序列(Python regex - matching character sequences using prior matched characters)[2022-11-03]
你想在第二个捕获组中的\1上做一个负前瞻断言(?!...) ,然后它会工作: r'(.)((?!\1).)\2\1' 测试你的例子: >>> import re >>> re.match(r'(.)((?!\1).)\2\1', 'zxxz') <_sre.SRE_Match object at 0x109b661c8> >>> re.match(r'(.)((?!\1).)\2\1', 'vbbv') <_sre.SRE_Match object at 0x109b663e8> >>> re.match ...相关文章
更多- jquery mobile 官网下载
- AMF: ASP.NET Mobile Framework
- Fluid Shopping Website 开发阶段性总结——第一周
- jQuery Mobile 的特性
- Hibernate Search(基于version3.4)--第四章Mapping entities to the index structure
- 手机版WEB开发经验分享,手机版网站开发注意事项,网站自适应,手机版网站自适应,移动安卓APP自适应
- opensource projects relevant version of cloud
- 使用jQuery Mobile实现通讯录
- Cannot expose request attribute 'website' because of an existing model object of the same name 的解决方案
- 无法启动Hbase hbase-default.xml file seems to be for and old version of HBase
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。